1.linux平均负载
这里我说的不会很晦涩难懂,争取用很容易理解的方式展示我学习后的理解 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 不 unlink 2.初识平均负载[[email?protected] ~]# uptime 14:38:11 up 2:10,4 users,load average: 0.00,0.00,0.00 14:38:11 up //系统当前时间 up 2:10 //系统运行了多久 4 users //这里我是用root用户登录,打开了四个窗口 load average: 0.00,0.00 //分别是系统过去1分钟,5分钟,15分钟的负载
"R状态的演示查看" 在我的系统中,我使用yum安装了一下zlib*,并且安装了zabbix客户端,但zabbix服务端并没有启动。 根据ps -aux查看到,zabbix客户端是处于S状态,并不是一个活跃的正在工作的进程。yum命令如果你仔细观察,会发现,在install的过程,是处于R状态,但这个状态很短暂,任务完成,就处于S状态了。 [[email?protected] ~]# ps -aux Warning: bad syntax,perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.0 19356 1532 ? Ss 12:27 0:01 /sbin/init root 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.conf zabbix 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 3G stress: info: [7112] dispatching hogs: 0 cpu,1 io,0 vm,1 hdd 另一个窗口查看,可看到处于D状态 [[email?protected] ~]# ps -aux Warning: bad syntax,perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19356 1428 ? Ss 12:27 0:01 /sbin/init root 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 3G root 7114 39.4 0.0 7472 1180 pts/0 D+ 14:52 0:03 stress -d 1 -i 1 --hdd-bytes 3G 3.怎样理解平均负载
4.平均负载为多少需要注意
查看CPU数的方法,当然还有很多方法,可以用top等 [[email?protected] ~]# grep ‘model name‘ /proc/cpuinfo | wc -l 2 5.引起平均负载过高的几种情况环境介绍: centos6 2CPU 2G内存 需要安装stress和sysstat "1.CPU密集型进程" 模拟CPU使用率100%的场景 "窗口1执行" [[email?protected] ~]# stress -c 1 --timeout 600 stress: info: [7188] dispatching hogs: 1 cpu,0 io,0 hdd "窗口2执行" 一分钟后,可看到最近一分钟的系统的负载为0.98 [[email?protected] ~]# watch -d uptime Every 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 5 Linux 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 %idle 03:23:05 PM all 50.05 0.00 0.10 0.00 0.00 0.00 0.00 0.00 49.85 03:23:05 PM 0 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.80 03:23:05 PM 1 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:23:05 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:23:10 PM all 50.00 0.00 0.10 0.00 0.00 0.00 0.00 0.00 49.90 03:23:10 PM 0 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.80 03: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 2 Linux 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 Command 03:26:01 PM 1205 0.00 0.20 0.00 0.20 0 zabbix_agentd 03:26:01 PM 7189 99.80 0.00 0.00 99.80 1 stress 03:26:01 PM PID %usr %system %guest %CPU CPU Command 03:26:06 PM 7189 100.00 0.00 0.00 100.00 1 stress Average: PID %usr %system %guest %CPU CPU Command Average: 1205 0.00 0.10 0.00 0.10 - zabbix_agentd Average: 7189 100.00 0.00 0.00 100.00 - stress "2.IO密集型进程" -i参数是把内存中的数据写入硬盘,但是当内存中没有很多数据时,io不会很大 "窗口1" [[email?protected] ~]# stress -i 1 --timeout 600 stress: info: [7547] dispatching hogs: 0 cpu,0 hdd "窗口2" 一分钟后,可看到最近一分钟的系统的负载为1.03 [[email?protected] ~]# watch -d uptime Every 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 5 Linux 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 %idle 03:33:56 PM all 0.10 0.00 50.05 0.00 0.00 0.00 0.00 0.00 49.85 03:33:56 PM 0 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.80 03:33:56 PM 1 0.20 0.00 99.80 0.00 0.00 0.00 0.00 0.00 0.00 03:33:56 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:34:01 PM all 0.20 0.00 49.70 0.00 0.00 0.00 0.00 0.00 50.10 03:34:01 PM 0 0.20 0.00 0.40 0.00 0.00 0.00 0.00 0.00 99.40 03:34:01 PM 1 0.20 0.00 99.80 0.00 0.00 0.00 0.00 0.00 0.00 03:34:01 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:34:06 PM all 0.10 0.00 49.85 0.00 0.00 0.00 0.00 0.00 50.05 03:34:06 PM 0 0.00 0.00 0.20 0.00 0.00 0.00 0.00 0.00 99.80 03: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 2 Linux 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 Command 03:36:58 PM 1058 0.00 2.60 0.00 2.60 1 flush-8:0 03:36:58 PM 1205 0.00 0.20 0.00 0.20 0 zabbix_agentd 03:36:58 PM 7190 0.20 0.00 0.00 0.20 0 watch 03:36:58 PM 7548 0.00 97.60 0.00 97.60 1 stress 03:36:58 PM PID %usr %system %guest %CPU CPU Command 03:37:03 PM 7 0.00 0.20 0.00 0.20 0 events/0 03:37:03 PM 1058 0.00 2.60 0.00 2.60 1 flush-8:0 03:37:03 PM 7548 0.20 97.40 0.00 97.60 1 stress 03:37:03 PM 7655 0.00 0.20 0.00 0.20 0 pidstat Average: PID %usr %system %guest %CPU CPU Command Average: 7 0.00 0.10 0.00 0.10 - events/0 Average: 1058 0.00 2.60 0.00 2.60 - flush-8:0 Average: 1205 0.00 0.10 0.00 0.10 - zabbix_agentd Average: 7190 0.10 0.00 0.00 0.10 - watch Average: 7548 0.10 97.50 0.00 97.60 - stress Average: 7655 0.00 0.10 0.00 0.10 - pidstat "查看系统IO" 此时系统IO为0 [[email?protected] ~]# iostat 2 Linux 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.18 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn scd0 0.00 0.02 0.00 264 0 sda 21.61 65.08 17475.64 745996 200314900 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 50.00 0.00 0.00 50.00 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn scd0 0.00 0.00 0.00 0 0 sda 0.00 0.00 0.00 0 0 avg-cpu: %user %nice %system %iowait %steal %idle 0.25 0.00 50.00 0.00 0.00 49.75 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn scd0 0.00 0.00 0.00 0 0 sda 0.00 0.00 0.00 0 0 "3.IO密集型-演示写入数据到硬盘" "窗口1" [[email?protected] ~]# stress -d 1 --hdd-bytes 3G --timeout 600 stress: 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 5 Linux 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 %idle 03:41:28 PM all 0.11 0.00 29.42 61.56 0.11 5.21 0.00 0.00 3.58 03:41:28 PM 0 0.00 0.00 24.66 68.04 0.23 6.62 0.00 0.00 0.46 03:41:28 PM 1 0.21 0.00 33.75 55.83 0.00 3.75 0.00 0.00 6.46 03:41:28 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:41:33 PM all 0.11 0.00 24.01 67.40 0.22 4.19 0.00 0.00 4.07 03:41:33 PM 0 0.00 0.00 16.90 71.99 0.46 3.01 0.00 0.00 7.64 03:41:33 PM 1 0.00 0.00 30.67 63.45 0.00 5.25 0.00 0.00 0.63 03:41:33 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:41:38 PM all 0.00 0.00 18.46 64.71 0.33 4.23 0.00 0.00 12.27 03:41:38 PM 0 0.00 0.00 19.57 62.15 0.65 2.37 0.00 0.00 15.27 03:41:38 PM 1 0.22 0.00 17.07 67.18 0.00 6.13 0.00 0.00 9.41 03:41:38 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:41:43 PM all 0.11 0.00 22.00 61.91 0.21 5.15 0.00 0.00 10.62 03:41:43 PM 0 0.22 0.00 19.69 67.04 0.44 2.65 0.00 0.00 9.96 03: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 2 Linux 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 Command 03:43:51 PM 34 0.00 2.00 0.00 2.00 0 kswapd0 03:43:51 PM 411 0.00 1.00 0.00 1.00 0 jbd2/sda3-8 03:43:51 PM 1058 0.00 6.60 0.00 6.60 1 flush-8:0 03:43:51 PM 1205 0.20 0.00 0.00 0.20 1 zabbix_agentd 03:43:51 PM 1492 0.00 0.20 0.00 0.20 1 kblockd/1 03:43:51 PM 7190 0.00 0.20 0.00 0.20 0 watch 03:43:51 PM 7799 0.00 12.00 0.00 12.00 1 stress 03:43:51 PM PID %usr %system %guest %CPU CPU Command 03:43:56 PM 7 0.00 0.20 0.00 0.20 0 events/0 03:43:56 PM 34 0.00 1.20 0.00 1.20 0 kswapd0 03:43:56 PM 411 0.00 2.40 0.00 2.40 1 jbd2/sda3-8 03:43:56 PM 1058 0.00 11.20 0.00 11.20 1 flush-8:0 03:43:56 PM 1209 0.00 0.20 0.00 0.20 1 zabbix_agentd 03:43:56 PM 7799 0.00 18.00 0.00 18.00 0 stress Average: PID %usr %system %guest %CPU CPU Command Average: 7 0.00 0.10 0.00 0.10 - events/0 Average: 34 0.00 1.60 0.00 1.60 - kswapd0 Average: 411 0.00 1.70 0.00 1.70 - jbd2/sda3-8 Average: 1058 0.00 8.90 0.00 8.90 - flush-8:0 Average: 1205 0.10 0.00 0.00 0.10 - zabbix_agentd Average: 1209 0.00 0.10 0.00 0.10 - zabbix_agentd Average: 1492 0.00 0.10 0.00 0.10 - kblockd/1 Average: 7190 0.00 0.10 0.00 0.10 - watch Average: 7799 0.00 15.00 0.00 15.00 - stress "查看系统IO" 主要进行磁盘写入 [[email?protected] ~]# iostat 2 Linux 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.79 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn scd0 0.00 0.02 0.00 264 0 sda 35.96 63.99 32246.86 761172 383586740 avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 21.29 72.51 0.00 6.20 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn scd0 0.00 0.00 0.00 0 0 sda 804.50 148.00 820820.00 296 1641640 avg-cpu: %user %nice %system %iowait %steal %idle 0.27 0.00 25.87 62.67 0.00 11.20 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn scd0 0.00 0.00 0.00 0 0 sda 773.50 0.00 787620.00 0 1575240 "4.模拟多个进程" "窗口1" 一共开启7个进程 [[email?protected] ~]# stress -c 7 --timeout 600 stress: info: [8059] dispatching hogs: 7 cpu,0 hdd "窗口2" 负载已经高达6.93了 [[email?protected] ~]# watch -d uptime Every 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 5 Linux 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 %idle 03:50:21 PM all 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:50:21 PM 0 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:50:21 PM 1 100.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03:50:21 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 03:50:26 PM all 99.90 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 03:50:26 PM 0 99.80 0.00 0.20 0.00 0.00 0.00 0.00 0.00 0.00 03: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 2 Linux 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 Command 03:51:16 PM 7190 0.20 0.00 0.00 0.20 0 watch 03:51:16 PM 8060 24.90 0.00 0.00 24.90 1 stress 03:51:16 PM 8061 33.27 0.00 0.00 33.27 0 stress 03:51:16 PM 8062 25.10 0.00 0.00 25.10 1 stress 03:51:16 PM 8063 33.07 0.00 0.00 33.07 0 stress 03:51:16 PM 8064 24.90 0.00 0.00 24.90 1 stress 03:51:16 PM 8065 33.27 0.00 0.00 33.27 0 stress 03:51:16 PM 8066 24.90 0.00 0.00 24.90 1 stress 03:51:16 PM PID %usr %system %guest %CPU CPU Command 03:51:21 PM 1205 0.00 0.20 0.00 0.20 1 zabbix_agentd 03:51:21 PM 8060 25.00 0.00 0.00 25.00 1 stress 03:51:21 PM 8061 33.20 0.00 0.00 33.20 0 stress 03:51:21 PM 8062 25.00 0.00 0.00 25.00 1 stress 03:51:21 PM 8063 33.20 0.00 0.00 33.20 0 stress 03:51:21 PM 8064 25.00 0.00 0.00 25.00 1 stress 03:51:21 PM 8065 33.20 0.00 0.00 33.20 0 stress 03:51:21 PM 8066 25.00 0.00 0.00 25.00 1 stress Average: PID %usr %system %guest %CPU CPU Command Average: 1205 0.00 0.10 0.00 0.10 - zabbix_agentd Average: 7190 0.10 0.00 0.00 0.10 - watch Average: 8060 24.95 0.00 0.00 24.95 - stress Average: 8061 33.23 0.00 0.00 33.23 - stress Average: 8062 25.05 0.00 0.00 25.05 - stress Average: 8063 33.13 0.00 0.00 33.13 - stress Average: 8064 24.95 0.00 0.00 24.95 - stress Average: 8065 33.23 0.00 0.00 33.23 - stress Average: 8066 24.95 0.00 0.00 24.95 - stress "查看进程状态" 全部处于R 运行状态 [[email?protected] ~]# ps -aux Warning: bad syntax,perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19356 1416 ? Ss 12:27 0:01 /sbin/init root 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 600 root 8060 27.6 0.0 6524 124 pts/0 R+ 15:49 0:53 stress -c 7 --timeout 600 root 8061 30.3 0.0 6524 124 pts/0 R+ 15:49 0:59 stress -c 7 --timeout 600 root 8062 24.9 0.0 6524 124 pts/0 R+ 15:49 0:48 stress -c 7 --timeout 600 root 8063 33.0 0.0 6524 124 pts/0 R+ 15:49 1:04 stress -c 7 --timeout 600 root 8064 24.9 0.0 6524 124 pts/0 R+ 15:49 0:48 stress -c 7 --timeout 600 root 8065 33.0 0.0 6524 124 pts/0 R+ 15:49 1:04 stress -c 7 --timeout 600 root 8066 24.9 0.0 6524 124 pts/0 R+ 15:49 0:48 stress -c 7 --timeout 600 root 8176 0.0 0.0 110256 1156 pts/1 R+ 15:52 0:00 ps -aux (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |