linux中怎么优化cpu,Linux性能优化--CPU到100%了该怎么办(上)

如果CPU导了100%,第一步肯定用top命令来查看

top - 15:12:21 up 245 days, 20:55, 2 users, load average: 0.98, 0.74, 0.38

Tasks: 131 total, 2 running, 129 sleeping, 0 stopped, 0 zombie

%Cpu(s): 25.1 us, 0.2 sy, 0.0 ni, 74.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 8008844 total, 285060 free, 1806168 used, 5917616 buff/cache

KiB Swap: 0 total, 0 free, 0 used. 5831264 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

9904 root 20 0 7308 96 0 R 100.0 0.0 6:43.68 stress

14814 root 20 0 5705212 894664 7788 S 0.3 11.2 59:19.13 java

18453 root 20 0 611272 13740 2368 S 0.3 0.2 5:19.06 barad_agent

20217 root 20 0 0 0 0 S 0.3 0.0 84:18.59 xfsaild/vdb

24911 root 20 0 1193940 25692 6504 S 0.3 0.3 106:21.63 dockerd-current

1 root 20 0 191172 3704 2188 S 0.0 0.0 105:20.27 systemd

可以看到此刻的我的linux系统有131个任务,其中2个在运行,129个在休眠。

看%CPU(s)这一行,25.1 us表示用户态导致了25%的CPU使用率,0.2 sy是内核态,74.7 id表示74.7%的CPU是空闲的,这时我们在按“1”,可以看到下面的结果

top - 15:16:08 up 245 days, 20:59, 2 users, load average: 1.04, 0.89, 0.52

Tasks: 133 total, 2 running, 131 sleeping, 0 stopped, 0 zombie

%Cpu0 : 0.3 us, 0.3 sy, 0.0 ni, 99.0 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st

%Cpu1 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

%Cpu2 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

%Cpu3 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 8008844 total, 284472 free, 1806496 used, 5917876 buff/cache

KiB Swap: 0 total, 0 free, 0 used. 5830884 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

9904 root 20 0 7308 96 0 R 100.0 0.0 10:30.94 stress

18150 root 20 0 167540 38684 3940 S 0.3 0.5 34:33.35 YDService

18453 root 20 0 611272 13740 2368 S 0.3 0.2 5:20.08 barad_agent

1 root 20 0 191172 3704 2188 S 0.0 0.0 105:20.36 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:07.84 kthreadd

3 root 20 0 0 0 0 S 0.0 0.0 3:43.33 ksoftirqd/0

5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

7 root rt 0 0 0 0 S 0.0 0.0 1:59.68 migration/0

比较两个结果发现%CPU(s)没有了,变成了%CPU0,%CPU1,%CPU2,%CPU3。这是因为在top情况下,%CPU(s)显示所有CPU相加的结果,按了“1”,切换到每个CPU的结果。

可以看到我这里有4个CPU,其他CPU2的使用率是100%,所以4个CPU的使用率就是1/4 = 25%,跟top命令看到的一致。

因为我用stress模拟把一个CPU跑满的,所以可以看到进程列表显示stress造成了100%的使用率。

或者使用pidstat命令可以看到CPU使用情况。

$ pidstat 2 5 #表示每2秒输出一次结果,输出5次

Linux 3.10.0-957.21.3.el7.x86_64 (Tbj3-omie-web1) 07/23/2020 _x86_64_ (4 CPU)

03:24:57 PM UID PID %usr %system %guest %CPU CPU Command

03:24:59 PM 0 9904 100.00 0.00 0.00 100.00 3 stress

03:24:59 PM 0 15335 0.00 0.50 0.00 0.50 2 pidstat

03:24:59 PM UID PID %usr %system %guest %CPU CPU Command

03:25:01 PM 0 9 0.00 1.00 0.00 1.00 2 rcu_sched

03:25:01 PM 0 125 0.00 0.50 0.00 0.50 2 kauditd

03:25:01 PM 81 2907 1.00 0.50 0.00 1.50 0 dbus-daemon

03:25:01 PM 0 2915 0.00 0.50 0.00 0.50 0 systemd-logind

03:25:01 PM 999 2916 0.50 0.00 0.00 0.50 0 polkitd

03:25:01 PM 0 9904 92.00 0.00 0.00 92.00 2 stress

03:25:01 PM 0 14794 0.00 0.50 0.00 0.50 3 docker-containe

03:25:01 PM 0 14814 0.50 0.50 0.00 1.00 0 java

03:25:01 PM 0 15352 2.50 1.00 0.00 3.50 1 python

03:25:01 PM 0 15383 4.50 1.00 0.00 5.50 2 python

03:25:01 PM 0 15384 5.00 1.50 0.00 6.50 1 python

03:25:01 PM 0 15385 6.00 1.50 0.00 7.50 0 python

03:25:01 PM 0 15386 5.50 0.50 0.00 6.00 3 python

03:25:01 PM 0 15397 1.00 0.00 0.00 1.00 1 python

03:25:01 PM 0 15406 1.00 0.50 0.00 1.50 3 python

03:25:01 PM 0 15417 0.50 0.00 0.00 0.50 3 python

03:25:01 PM 0 18150 0.00 1.00 0.00 1.00 1 YDService

03:25:01 PM 0 18453 0.50 0.00 0.00 0.50 1 barad_agent

03:25:01 PM 0 20217 0.00 0.50 0.00 0.50 2 xfsaild/vdb

03:25:01 PM 0 24911 0.00 0.50 0.00 0.50 2 dockerd-current

03:25:01 PM UID PID %usr %system %guest %CPU CPU Command

03:25:03 PM 81 2907 0.00 0.50 0.00 0.50 3 dbus-daemon

03:25:03 PM 0 9904 99.50 0.00 0.00 99.50 1 stress

03:25:03 PM 0 15335 0.00 0.50 0.00 0.50 2 pidstat

03:25:03 PM 0 18453 0.50 0.50 0.00 1.00 1 barad_agent

03:25:03 PM 0 24911 1.00 0.00 0.00 1.00 2 dockerd-current

也可以发现是PID为9904的这个进程,导致的CPU使用率100%。

来源:oschina

链接:https://my.oschina.net/aidelingyu/blog/4424202

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux CPU 100%测试是用来测试系统在高负载情况下CPU使用率是否能够达到满负荷的测试方法。它主要用于测试系统的稳定性和性能,以便在生产环境能够及时识别系统的瓶颈和性能问题。 在进行Linux CPU 100%测试前,首先需要明确测试的目的和测试环境。测试目的可以是验证系统的稳定性、评估系统的性能或定位系统的性能问题。测试环境应该是一个与实际生产环境相似的环境,包括硬件配置、操作系统版本和系统设置等。 进行Linux CPU 100%测试的方法有多种,可以通过运行大量的CPU密集型任务来达到CPU满负荷的状态。比如可以通过运行多个计算密集型的数值计算程序,或者通过编写一个循环脚本来让系统持续进行大量的计算操作。测试期间可以使用系统监控工具来实时监测系统的CPU使用率,比如使用top命令或者htop命令查看系统的CPU占用情况。 在进行Linux CPU 100%测试时,需要注意避免过度使用系统资源导致系统崩溃或无法正常工作。同时,也需要注意系统的温度和风扇的转速等硬件指标,确保系统在高负载运行时能够正常散热。 通过进行Linux CPU 100%测试,可以评估系统的CPU性能是否足够强大,以及系统在高负荷下是否能够正常运行。如果出现CPU占用率过高或系统不稳定等问题,可以进一步分析和优化系统配置,以提高系统的性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值