这里我说的不会很晦涩难懂,争取用很容易理解的方式展示我学习后的理解
1.首先介绍下stress命令参数,下面我们会使用到-? 显示帮助信息-v 显示版本号-q 不显示运行信息-n 显示已完成的指令情况-t --timeout N 指定运行 N 秒后停止 --backoff N 等待 N 微秒后开始运行-c 产生 n 个进程,每个进程都反复不停的计算随机数的平方根-i 产生 n 个进程,每个进程反复调用 sync(),sync() 用于将内存上的内容写到硬盘上-m --vm n 产生 n 个进程,每个进程不断调用内存分配 malloc 和内存释放 free 函数 --vm-bytes B 指定 malloc 时内存的字节数 (默认 256MB) --vm-hang N 指定在 free 栈的秒数-d --hadd n 产生 n 个执行 write 和 unlink 函数的进程 --hadd-bytes B 指定写的字节数 --hadd-noclean 不 unlink2.初识平均负载
[[email protected] ~]# uptime 14:38:11 up 2:10,4 users,load average: 0.00,0.00,0.0014:38:11 up //系统当前时间up 2:10 //系统运行了多久4 users //这里我是用root用户登录,打开了四个窗口load average: 0.00,0.00 //分别是系统过去1分钟,5分钟,15分钟的负载
平均负载是什么?
平均负载是单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即系统中单位时间内的活跃进程数。可运行状态的进程:
正在使用cpu或正在等待cpu的进程。即ps命令中,stat处于R(Running|Runnable)的进程
不可中断的进程:
例如在进行磁盘读写的进程,此时为了保证数据的完整性,会使进程的状态设置为D,即不可被中断,如果被中断了,数据是不会被完整保存的。
不可中断状态是系统对进程和硬件设备的一种保护机制。
"R状态的演示查看"在我的系统中,我使用yum安装了一下zlib*,并且安装了zabbix客户端,但zabbix服务端并没有启动。根据ps -aux查看到,zabbix客户端是处于S状态,并不是一个活跃的正在工作的进程。yum命令如果你仔细观察,会发现,在install的过程,是处于R状态,但这个状态很短暂,任务完成,就处于S状态了。[[email protected] ~]# ps -auxWarning: bad Syntax,perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQUSER PID %cpu %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.1 0.0 19356 1532 ? Ss 12:27 0:01 /sbin/initroot 2 0.0 0.0 0 0 ? S 12:27 0:00 [kthreadd]zabbix 1203 0.0 0.0 76836 1228 ? S 12:27 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.confzabbix 1205 0.0 0.0 76836 1328 ? S 12:27 0:00 /usr/sbin/zabbix_agentd: collector [IDle 1 sec] zabbix 1206 0.0 0.0 76836 1956 ? S 12:27 0:00 /usr/sbin/zabbix_agentd: Listener #1 [waiting for connection]zabbix 1207 0.0 0.0 76836 1956 ? S 12:27 0:00 /usr/sbin/zabbix_agentd: Listener #2 [waiting for connection]zabbix 1208 0.0 0.0 76836 1956 ? S 12:27 0:00 /usr/sbin/zabbix_agentd: Listener #3 [waiting for connection]zabbix 1209 0.0 0.1 76840 2120 ? S 12:27 0:00 /usr/sbin/zabbix_agentd: active checks #1 [IDle 1 sec] root 1402 21.1 4.1 387784 85264 pts/1 R+ 12:45 0:08 /usr/bin/python /usr/bin/yum install -y zlib*root 1426 0.0 0.0 110260 1156 pts/0 R+ 12:46 0:00 ps -aux
"D状态的演示查看"在一个窗口执行[[email protected] ~]# stress -d 1 -i 1 --hdd-bytes 3Gstress: info: [7112] dispatching hogs: 0 cpu,1 io,0 vm,1 hdd另一个窗口查看,可看到处于D状态[[email protected] ~]# ps -auxWarning: bad Syntax,perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQUSER PID %cpu %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 19356 1428 ? Ss 12:27 0:01 /sbin/initroot 2 0.0 0.0 0 0 ? S 12:27 0:00 [kthreadd]root 7113 0.5 0.0 6524 112 pts/0 D+ 14:52 0:00 stress -d 1 -i 1 --hdd-bytes 3Groot 7114 39.4 0.0 7472 1180 pts/0 D+ 14:52 0:03 stress -d 1 -i 1 --hdd-bytes 3G3.怎样理解平均负载
4.平均负载为多少需要注意当平均负载为2时
在只有两个cpu的系统上,意味着所有的cpu都被占用了
在有4个cpu的系统上,即cpu使用率为50%
在只有1个cpu的系统上,即一半的进程获取不到cpu,此时负载就比较高了
刚刚我们看到的三个平均负载的值,最理想的状态是平均负载的值小于等于cpu的数量,说明系统还能没有压力的完成任务,如果平均负载值大于cpu数,就说明需要注意下,如果这样持续很久,或者负载已经是cpu数的好几倍了,就要引起足够的重视了。
查看cpu数的方法,当然还有很多方法,可以用top等[[email protected] ~]# grep ‘model name‘ /proc/cpuinfo | wc -l25.引起平均负载过高的几种情况
环境介绍:centos6 2cpu 2G内存需要安装stress和sysstat
"1.cpu密集型进程"模拟cpu使用率100%的场景"窗口1执行"[[email protected] ~]# stress -c 1 --timeout 600stress: info: [7188] dispatching hogs: 1 cpu,0 io,0 hdd"窗口2执行"一分钟后,可看到最近一分钟的系统的负载为0.98[[email protected] ~]# watch -d uptimeEvery 2.0s: uptime Wed May 8 15:26:48 2019 15:26:48 up 2:59,load average: 0.98,0.57,0.23"窗口3查看cpu的使用情况"可以看到,一个cpu 1的%usr为100%,说明cpu 1全部用于处理用户 *** 作了,由于有两个cpu,所以总的cpu使用率为50%这里的5是每隔5秒显示一次结果[[email protected] ~]# mpstat -P ALL 5linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)03:23:00 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:23:05 PM all 50.05 0.00 0.10 0.00 0.00 0.00 0.00 0.00 49.8503:23:05 PM 0 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.8003:23:05 PM 1 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0003:23:05 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:23:10 PM all 50.00 0.00 0.10 0.00 0.00 0.00 0.00 0.00 49.9003:23:10 PM 0 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.8003:23:10 PM 1 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00"窗口4查看占用cpu较高的进程"可以看到,是stress占用较高[[email protected] ~]# pIDstat -u 5 2linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)03:25:56 PM PID %usr %system %guest %cpu cpu Command03:26:01 PM 1205 0.00 0.20 0.00 0.20 0 zabbix_agentd03:26:01 PM 7189 99.80 0.00 0.00 99.80 1 stress03:26:01 PM PID %usr %system %guest %cpu cpu Command03:26:06 PM 7189 100.00 0.00 0.00 100.00 1 stressAverage: PID %usr %system %guest %cpu cpu CommandAverage: 1205 0.00 0.10 0.00 0.10 - zabbix_agentdAverage: 7189 100.00 0.00 0.00 100.00 - stress
"2.IO密集型进程"-i参数是把内存中的数据写入硬盘,但是当内存中没有很多数据时,io不会很大"窗口1"[[email protected] ~]# stress -i 1 --timeout 600stress: info: [7547] dispatching hogs: 0 cpu,0 hdd"窗口2"一分钟后,可看到最近一分钟的系统的负载为1.03[[email protected] ~]# watch -d uptimeEvery 2.0s: uptime Wed May 8 15:38:07 2019 15:38:07 up 3:10,load average: 1.03,0.68,0.36"窗口3"可看到cpu1的%sys为 100%,cpu 1主要用于处理系统问题[[email protected] ~]# mpstat -P ALL 5linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)03:33:51 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:33:56 PM all 0.10 0.00 50.05 0.00 0.00 0.00 0.00 0.00 49.8503:33:56 PM 0 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.8003:33:56 PM 1 0.20 0.00 99.80 0.00 0.00 0.00 0.00 0.00 0.0003:33:56 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:34:01 PM all 0.20 0.00 49.70 0.00 0.00 0.00 0.00 0.00 50.1003:34:01 PM 0 0.20 0.00 0.40 0.00 0.00 0.00 0.00 0.00 99.4003:34:01 PM 1 0.20 0.00 99.80 0.00 0.00 0.00 0.00 0.00 0.0003:34:01 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:34:06 PM all 0.10 0.00 49.85 0.00 0.00 0.00 0.00 0.00 50.0503:34:06 PM 0 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.8003:34:06 PM 1 0.20 0.00 99.80 0.00 0.00 0.00 0.00 0.00 0.00"窗口4"查看到,stres进程占用cpu较高[[email protected] ~]# pIDstat -u 5 2linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)03:36:53 PM PID %usr %system %guest %cpu cpu Command03:36:58 PM 1058 0.00 2.60 0.00 2.60 1 flush-8:003:36:58 PM 1205 0.00 0.20 0.00 0.20 0 zabbix_agentd03:36:58 PM 7190 0.20 0.00 0.00 0.20 0 watch03:36:58 PM 7548 0.00 97.60 0.00 97.60 1 stress03:36:58 PM PID %usr %system %guest %cpu cpu Command03:37:03 PM 7 0.00 0.20 0.00 0.20 0 events/003:37:03 PM 1058 0.00 2.60 0.00 2.60 1 flush-8:003:37:03 PM 7548 0.20 97.40 0.00 97.60 1 stress03:37:03 PM 7655 0.00 0.20 0.00 0.20 0 pIDstatAverage: PID %usr %system %guest %cpu cpu CommandAverage: 7 0.00 0.10 0.00 0.10 - events/0Average: 1058 0.00 2.60 0.00 2.60 - flush-8:0Average: 1205 0.00 0.10 0.00 0.10 - zabbix_agentdAverage: 7190 0.10 0.00 0.00 0.10 - watchAverage: 7548 0.10 97.50 0.00 97.60 - stressAverage: 7655 0.00 0.10 0.00 0.10 - pIDstat"查看系统IO"此时系统IO为0[[email protected] ~]# iostat 2linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)avg-cpu: %user %nice %system %iowait %steal %IDle 4.12 0.00 4.18 1.51 0.00 90.18Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnscd0 0.00 0.02 0.00 264 0sda 21.61 65.08 17475.64 745996 200314900avg-cpu: %user %nice %system %iowait %steal %IDle 0.00 0.00 50.00 0.00 0.00 50.00Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnscd0 0.00 0.00 0.00 0 0sda 0.00 0.00 0.00 0 0avg-cpu: %user %nice %system %iowait %steal %IDle 0.25 0.00 50.00 0.00 0.00 49.75Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnscd0 0.00 0.00 0.00 0 0sda 0.00 0.00 0.00 0 0
"3.IO密集型-演示写入数据到硬盘""窗口1"[[email protected] ~]# stress -d 1 --hdd-bytes 3G --timeout 600stress: info: [7798] dispatching hogs: 0 cpu,1 hdd"窗口2"此时,近1分钟的负载已经为2.32了Every 2.0s: uptime Wed May 8 15:45:11 2019 15:45:11 up 3:17,load average: 2.32,1.56,0.83"窗口3"可查看到,cpu主要用于进行io处理,并且两个cpu都处于繁忙状态[[email protected] ~]# mpstat -P ALL 5linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)03:41:23 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:41:28 PM all 0.11 0.00 29.42 61.56 0.11 5.21 0.00 0.00 3.5803:41:28 PM 0 0.00 0.00 24.66 68.04 0.23 6.62 0.00 0.00 0.4603:41:28 PM 1 0.21 0.00 33.75 55.83 0.00 3.75 0.00 0.00 6.4603:41:28 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:41:33 PM all 0.11 0.00 24.01 67.40 0.22 4.19 0.00 0.00 4.0703:41:33 PM 0 0.00 0.00 16.90 71.99 0.46 3.01 0.00 0.00 7.6403:41:33 PM 1 0.00 0.00 30.67 63.45 0.00 5.25 0.00 0.00 0.6303:41:33 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:41:38 PM all 0.00 0.00 18.46 64.71 0.33 4.23 0.00 0.00 12.2703:41:38 PM 0 0.00 0.00 19.57 62.15 0.65 2.37 0.00 0.00 15.2703:41:38 PM 1 0.22 0.00 17.07 67.18 0.00 6.13 0.00 0.00 9.4103:41:38 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:41:43 PM all 0.11 0.00 22.00 61.91 0.21 5.15 0.00 0.00 10.6203:41:43 PM 0 0.22 0.00 19.69 67.04 0.44 2.65 0.00 0.00 9.9603:41:43 PM 1 0.00 0.00 24.32 56.96 0.00 7.69 0.00 0.00 11.02"窗口4"查看占用cpu较高的进程[[email protected] ~]# pIDstat -u 5 2linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)03:43:46 PM PID %usr %system %guest %cpu cpu Command03:43:51 PM 34 0.00 2.00 0.00 2.00 0 kswapd003:43:51 PM 411 0.00 1.00 0.00 1.00 0 jbd2/sda3-803:43:51 PM 1058 0.00 6.60 0.00 6.60 1 flush-8:003:43:51 PM 1205 0.20 0.00 0.00 0.20 1 zabbix_agentd03:43:51 PM 1492 0.00 0.20 0.00 0.20 1 kblockd/103:43:51 PM 7190 0.00 0.20 0.00 0.20 0 watch03:43:51 PM 7799 0.00 12.00 0.00 12.00 1 stress03:43:51 PM PID %usr %system %guest %cpu cpu Command03:43:56 PM 7 0.00 0.20 0.00 0.20 0 events/003:43:56 PM 34 0.00 1.20 0.00 1.20 0 kswapd003:43:56 PM 411 0.00 2.40 0.00 2.40 1 jbd2/sda3-803:43:56 PM 1058 0.00 11.20 0.00 11.20 1 flush-8:003:43:56 PM 1209 0.00 0.20 0.00 0.20 1 zabbix_agentd03:43:56 PM 7799 0.00 18.00 0.00 18.00 0 stressAverage: PID %usr %system %guest %cpu cpu CommandAverage: 7 0.00 0.10 0.00 0.10 - events/0Average: 34 0.00 1.60 0.00 1.60 - kswapd0Average: 411 0.00 1.70 0.00 1.70 - jbd2/sda3-8Average: 1058 0.00 8.90 0.00 8.90 - flush-8:0Average: 1205 0.10 0.00 0.00 0.10 - zabbix_agentdAverage: 1209 0.00 0.10 0.00 0.10 - zabbix_agentdAverage: 1492 0.00 0.10 0.00 0.10 - kblockd/1Average: 7190 0.00 0.10 0.00 0.10 - watchAverage: 7799 0.00 15.00 0.00 15.00 - stress"查看系统IO"主要进行磁盘写入[[email protected] ~]# iostat 2linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)avg-cpu: %user %nice %system %iowait %steal %IDle 3.97 0.00 5.04 3.20 0.00 87.79Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnscd0 0.00 0.02 0.00 264 0sda 35.96 63.99 32246.86 761172 383586740avg-cpu: %user %nice %system %iowait %steal %IDle 0.00 0.00 21.29 72.51 0.00 6.20Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnscd0 0.00 0.00 0.00 0 0sda 804.50 148.00 820820.00 296 1641640avg-cpu: %user %nice %system %iowait %steal %IDle 0.27 0.00 25.87 62.67 0.00 11.20Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnscd0 0.00 0.00 0.00 0 0sda 773.50 0.00 787620.00 0 1575240
"4.模拟多个进程""窗口1"一共开启7个进程[[email protected] ~]# stress -c 7 --timeout 600stress: info: [8059] dispatching hogs: 7 cpu,0 hdd"窗口2"负载已经高达6.93了[[email protected] ~]# watch -d uptimeEvery 2.0s: uptime Wed May 8 15:54:06 2019 15:54:06 up 3:26,load average: 6.93,4.63,2.41"窗口3"此时所有cpu的使用率都为100%[[email protected] ~]# mpstat -P ALL 5linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)03:50:16 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:50:21 PM all 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0003:50:21 PM 0 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0003:50:21 PM 1 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0003:50:21 PM cpu %usr %nice %sys %iowait %irq %soft %steal %guest %IDle03:50:26 PM all 99.90 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.0003:50:26 PM 0 99.80 0.00 0.20 0.00 0.00 0.00 0.00 0.00 0.0003:50:26 PM 1 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00"窗口4"查看占用cpu的进程[[email protected] ~]# pIDstat -u 5 2linux 2.6.32-696.el6.x86_64 (m01) 05/08/2019 _x86_64_ (2 cpu)03:51:11 PM PID %usr %system %guest %cpu cpu Command03:51:16 PM 7190 0.20 0.00 0.00 0.20 0 watch03:51:16 PM 8060 24.90 0.00 0.00 24.90 1 stress03:51:16 PM 8061 33.27 0.00 0.00 33.27 0 stress03:51:16 PM 8062 25.10 0.00 0.00 25.10 1 stress03:51:16 PM 8063 33.07 0.00 0.00 33.07 0 stress03:51:16 PM 8064 24.90 0.00 0.00 24.90 1 stress03:51:16 PM 8065 33.27 0.00 0.00 33.27 0 stress03:51:16 PM 8066 24.90 0.00 0.00 24.90 1 stress03:51:16 PM PID %usr %system %guest %cpu cpu Command03:51:21 PM 1205 0.00 0.20 0.00 0.20 1 zabbix_agentd03:51:21 PM 8060 25.00 0.00 0.00 25.00 1 stress03:51:21 PM 8061 33.20 0.00 0.00 33.20 0 stress03:51:21 PM 8062 25.00 0.00 0.00 25.00 1 stress03:51:21 PM 8063 33.20 0.00 0.00 33.20 0 stress03:51:21 PM 8064 25.00 0.00 0.00 25.00 1 stress03:51:21 PM 8065 33.20 0.00 0.00 33.20 0 stress03:51:21 PM 8066 25.00 0.00 0.00 25.00 1 stressAverage: PID %usr %system %guest %cpu cpu CommandAverage: 1205 0.00 0.10 0.00 0.10 - zabbix_agentdAverage: 7190 0.10 0.00 0.00 0.10 - watchAverage: 8060 24.95 0.00 0.00 24.95 - stressAverage: 8061 33.23 0.00 0.00 33.23 - stressAverage: 8062 25.05 0.00 0.00 25.05 - stressAverage: 8063 33.13 0.00 0.00 33.13 - stressAverage: 8064 24.95 0.00 0.00 24.95 - stressAverage: 8065 33.23 0.00 0.00 33.23 - stressAverage: 8066 24.95 0.00 0.00 24.95 - stress"查看进程状态"全部处于R 运行状态[[email protected] ~]# ps -auxWarning: bad Syntax,perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQUSER PID %cpu %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 19356 1416 ? Ss 12:27 0:01 /sbin/initroot 2 0.0 0.0 0 0 ? S 12:27 0:00 [kthreadd]root 8059 0.0 0.0 6524 456 pts/0 S+ 15:49 0:00 stress -c 7 --timeout 600root 8060 27.6 0.0 6524 124 pts/0 R+ 15:49 0:53 stress -c 7 --timeout 600root 8061 30.3 0.0 6524 124 pts/0 R+ 15:49 0:59 stress -c 7 --timeout 600root 8062 24.9 0.0 6524 124 pts/0 R+ 15:49 0:48 stress -c 7 --timeout 600root 8063 33.0 0.0 6524 124 pts/0 R+ 15:49 1:04 stress -c 7 --timeout 600root 8064 24.9 0.0 6524 124 pts/0 R+ 15:49 0:48 stress -c 7 --timeout 600root 8065 33.0 0.0 6524 124 pts/0 R+ 15:49 1:04 stress -c 7 --timeout 600root 8066 24.9 0.0 6524 124 pts/0 R+ 15:49 0:48 stress -c 7 --timeout 600root 8176 0.0 0.0 110256 1156 pts/1 R+ 15:52 0:00 ps -aux总结
以上是内存溢出为你收集整理的1.linux平均负载全部内容,希望文章能够帮你解决1.linux平均负载所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)