window服务器cpu过高的排查_服务器CPU使用率过高排查与解决思路

本文介绍了一种排查服务器CPU使用率异常的方法,包括使用top和mpstat工具监控CPU使用情况,利用ps命令查找占用高的进程,以及使用taskset调整进程的CPU亲和性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发现服务器的cpu使用率特别高

排查思路:

-使用top或者mpstat查看cpu的使用情况

mpstat -P ALL 2 1

Linux 2.6.32-358.el6.x86_64 (linux—host) 01/05/2016 _x8664 (24 CPU)

04:41:13 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle

04:41:15 PM all 0.56 0.00 0.25 0.00 0.00 0.04 0.00 0.00 99.14

04:41:15 PM 0 3.08 0.00 1.03 0.00 0.00 0.51 0.00 0.00 95.38

04:41:15 PM 1 1.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.00

04:41:15 PM 2 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.00

04:41:15 PM 3 1.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.51

04:41:15 PM 4 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

04:41:15 PM 5 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.00

04:41:15 PM 6 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.00

04:41:15 PM 7 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

04:41:15 PM 8 0.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.00

04:41:15 PM 9 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

04:41:15 PM 10 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

04:41:15 PM 11 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

04:41:15 PM 12 1.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.00

04:41:15 PM 13 1.50 0.00 0.50 0.00 0.00 0.00 0.00 0.00 98.00

04:41:15 PM 14 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

04:41:15 PM 15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

04:41:15 PM 16 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

04:41:15 PM 17 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

04:41:15 PM 18 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

04:41:15 PM 19 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50

04:41:15 PM 20 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

04:41:15 PM 21 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

04:41:15 PM 22 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00

04:41:15 PM 23 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.50

-top找出占用高的进程ID

-查看进程占用线程数量,如java:

ps -eLf|grep java|wc -l

1065

解决CPU使用不均或者使用过高的问题

taskset

taskset是LINUX提供的一个命令(ubuntu系统可能需要自行安装,schedutils package)。他可以让某个程序运行在某个(或)某些CPU上。

1)显示进程运行的CPU

taskset -p 3495

pid 3495's current affinity mask: ffffffff

注:显示结果的ffffffff实际上是二进制32个低位均为1的bitmask,每个1对应于1个CPU,表示该进程在32个CPU上运行

2)指定进程运行在某个特定的CPU上

taskset -pc 3 3495

显示结果:

pid 3495's current affinity list: 0-31

pid 3495's new affinity list: 3

注:3表示CPU将只会运行在第4个CPU上(从0开始计数)

3)进程启动时指定CPU

taskset -c 1 ./redis-server ../redis.conf

系统CPU负载过高、CPU使用率不高的问题

(1)、问题

线上Tomcat服务器CPU的负载非常高,但是CPU使用率正常,如图:

图片.png

(2)、问题排查

1、首先查看是哪些进程的CPU占用率最高(如下可以看到详细的路径)

ps -aux --sort -pcpu | more

# 定位有问题的线程可以用如下命令

ps -mp pid -o THREAD,tid,time | more

2、查看JAVA进程的每个线程的CPU占用率

ps -Lp 5798 cu | more # 5798是查出来进程PID

3、追踪线程,查看负载过高的原因,使用JDK下的一个工具

jstack 5798 # 5798是PID

jstack -J-d64 -m 5798 # -j-d64指定64为系统

jstack 查出来的线程ID是16进制,可以把输出追加到文件,导出用记事本打开,

再根据系统中的线程ID去搜索查看该ID的线程运行内容,可以和开发一起排查。

(3)、常见的处理办法

网站相关进程导致负载高处理办法:

1、直接把网站php或http或tomcat等网站服务重启,很多时候负载就降下来了

2、也可能是网站代码漏洞导致的,需要反馈开发一起查找原因和处理

3、把重复的tomcat kill全部掉重新启动

mysql进程导致的负载高处理办法:

1、常见的就是mysql慢查询导致,可以在mysql慢查询日志找到相关sql语句,这需要对sql进行优化

2、还可以进入mysql,用show full processlist\G;查看那个mysql进程执行时间比较久的慢查询。如果是内部后台使用的语句,可以先kill掉,优化后再执行。

3、mysql读写太频繁,如果是读写频繁可以在%wa等待输入输出看的出来占用cpu百分比很大。也可以通过命令iostat查看系统读写情况。

还有可能是网络原因,系统硬件原因等

### 解决 Windows 11 中断导致 CPU 占用过的方案 #### 分析问题原因 在 Windows 11 系统中,当中断处理不当或频繁触发时,可能会导致 CPU 利用率异常升。这可能是由多种因素引起的,包括但不限于驱动程序不兼容、硬件加速设置不合理以及系统配置不佳等问题。 #### 使用 DPC Latency Checker 工具检测 为了确认是否存在驱动程序引发的延迟中断问题,建议使用 **DPC Latency Checker** 工具来进行诊断。此工具能够帮助识别是否有特定设备或驱动造成了过多的延迟过程调用 (DPC)[^5]。具体操作如下: - 下载并安装 DPC Latency Checker 应用; - 启动应用程序后保持默认选项开始监测; - 记录下任何红色标记的时间点及其对应的事件记录; 这些数据有助于进一步排查哪些组件可能存在问题。 #### 更新或回滚驱动程序 一旦发现有可疑的对象(通常是显示适配器或其他外设),应当考虑更新至最新的官方稳定版驱动或是尝试降级到之前正常工作的版本,并重复上述测试流程验证效果变化情况。 #### 考虑更换操作系统版本 对于部分老旧硬件来说,可能存在较新版本的操作系统之间的兼容性挑战。因此,在必要情况下可评估迁移至更稳定的平台如 Windows 8.1 或者选择专为企业环境设计且对旧硬件支持更好的 Windows 10 LTSC 版本作为替代方案[^3]。 #### 配置调整优化措施 除了针对潜在的驱动冲突采取行动之外,还可以从以下几个方面着手改进整体性能表现: - 减少不必要的后台服务启动项数量; - 关闭视觉特效以释放更多资源给前台应用; - 定期清理磁盘碎片整理提读写效率; - 如果条件允许的话增加物理内存容量从而减少页面交换频率降低因虚拟内存管理带来的额外开销。 ```powershell # PowerShell命令用于禁用某些非必要的Windows功能和服务 Set-Service -Name "WSearch" -StartupType Disabled # 禁用索引服务 Stop-Service -Force WSearch # 停止正在运行的服务实例 ``` 通过以上综合手段的应用,应该能够在很大程度上缓解甚至彻底解决问题所描述的现象——即由于各种类型的中断活动而导致的CPU负载过状况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值