|
1 | 1 | # 常见日常监控 |
2 | 2 |
|
3 | | -## 系统查看 |
| 3 | +## 系统信息 |
4 | 4 |
|
5 | 5 | - 查看 CentOS 版本号:`cat /etc/redhat-release` |
6 | 6 |
|
| 7 | +## 系统负载 |
| 8 | + |
| 9 | +#### 命令:w(判断整体瓶颈) |
| 10 | + |
| 11 | +``` |
| 12 | + 12:04:52 up 16 days, 12:54, 1 user, load average: 0.06, 0.13, 0.12 |
| 13 | +USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT |
| 14 | +root pts/0 116.21.24.85 11:57 4.00s 16:18 0.01s w |
| 15 | +``` |
| 16 | + |
| 17 | +- 第一行: |
| 18 | + - `12:04:52` 表示当前系统时间 |
| 19 | + - `up 16 days` 表示系统运行时间 |
| 20 | + - `1 user` 表示登录用户数 |
| 21 | + - `load average` 表示平均负载,0.06 表示一分钟内系统的平均负载值,0.13 表示五分钟内系统的平均负载值,0.12 表示十五分钟内系统的平均负载值。一般这个字不要超过服务器的 CPU 线程数(process)就没有关系。 |
| 22 | + - 查看 CPU 总的线程数:`grep 'processor' /proc/cpuinfo | sort -u | wc -l` |
| 23 | +- 第二行: |
| 24 | + - 开始表示各个登录用户的情况,当前登录者是 root,登录者 IP 116.21.24.85 |
| 25 | + |
| 26 | + |
| 27 | +#### 命令:vmstat(判断 RAM 和 I/0 瓶颈) |
| 28 | + |
| 29 | +- 命令:`vmstat 5 10`,每 5 秒采样一次,共 10 次。 |
| 30 | + |
| 31 | +``` |
| 32 | +procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- |
| 33 | + r b swpd free buff cache si so bi bo in cs us sy id wa st |
| 34 | + 2 0 0 72648 0 674564 0 0 0 7 0 26 1 1 99 0 0 |
| 35 | + 0 0 0 72648 0 674596 0 0 0 0 442 557 1 0 99 0 0 |
| 36 | + 0 0 0 72648 0 674596 0 0 0 12 438 574 0 1 99 0 0 |
| 37 | + 0 0 0 72648 0 674596 0 0 0 0 430 540 0 0 100 0 0 |
| 38 | + 0 0 0 72648 0 674596 0 0 0 0 448 567 0 1 99 0 0 |
| 39 | + 0 0 0 72648 0 674596 0 0 0 0 459 574 1 0 99 0 0 |
| 40 | + 0 0 0 72648 0 674596 0 0 0 0 425 543 0 1 99 0 0 |
| 41 | + 0 0 0 72276 0 674600 0 0 0 0 480 643 2 3 95 0 0 |
| 42 | +``` |
| 43 | + |
| 44 | +- 第二行: |
| 45 | + - `r` 表示运行和等待CPU时间片的进程数,该数字如果长期大于服务器CPU的进程数,则说明CPU不够用了。 |
| 46 | + - `b` 表示等待资源的进程数,比如等I/O,内存等。该数字如果长时间大于 1,则需要关注一下。 |
| 47 | + - `si` 表示由交换区写入到内存的数据量 |
| 48 | + - `so` 表示由内存写入到交换区的数据量 |
| 49 | + - **如果 si 和 so 的数字比较高,并且不断变化时,说明内存不够了。而且不断变化也表示对系统性能影响很大。** |
| 50 | + - `bi` 表示从块设备读取数据的量(读磁盘) |
| 51 | + - `bo` 表示从块设备写入数据的量(写磁盘) |
| 52 | + - **如果bi和bo两个数字比较高,则说明,磁盘IO压力大。** |
| 53 | + - `wa` 表示I/O等待所占用CPU的时间比 |
| 54 | + |
| 55 | + |
| 56 | +#### 命令:iostat(判断 I/0 瓶颈) |
| 57 | + |
| 58 | +- 命令:`iostat -x -k 3 3`,每 3 秒采样一次,共 3 次。 |
| 59 | + |
| 60 | +``` |
| 61 | +avg-cpu: %user %nice %system %iowait %steal %idle |
| 62 | + 0.55 0.00 0.52 0.00 0.00 98.93 |
| 63 | +
|
| 64 | +Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util |
| 65 | +vda 0.00 0.04 0.02 0.62 0.44 6.49 21.65 0.00 1.42 1.17 1.42 0.25 0.02 |
| 66 | +
|
| 67 | +avg-cpu: %user %nice %system %iowait %steal %idle |
| 68 | + 0.34 0.00 0.00 0.00 0.00 99.66 |
| 69 | +
|
| 70 | +Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util |
| 71 | +vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 |
| 72 | +
|
| 73 | +avg-cpu: %user %nice %system %iowait %steal %idle |
| 74 | + 2.02 0.00 0.34 0.00 0.00 97.64 |
| 75 | +
|
| 76 | +Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util |
| 77 | +vda 0.00 0.00 0.00 1.68 0.00 16.16 19.20 0.00 0.20 0.00 0.20 0.20 0.03 |
| 78 | +``` |
| 79 | + |
| 80 | +- 列说明: |
| 81 | + - `rrqm/s`: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并 |
| 82 | + - `wrqm/s`: 每秒对该设备的写请求被合并次数 |
| 83 | + - `r/s`: 每秒完成的读次数 |
| 84 | + - `w/s`: 每秒完成的写次数 |
| 85 | + - `rkB/s`: 每秒读数据量(kB为单位) |
| 86 | + - `wkB/s`: 每秒写数据量(kB为单位) |
| 87 | + - `avgrq-sz`:平均每次IO操作的数据量(扇区数为单位) |
| 88 | + - `avgqu-sz`: 平均等待处理的IO请求队列长度 |
| 89 | + - `await`: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位) |
| 90 | + - `svctm`: 平均每次IO请求的处理时间(毫秒为单位) |
| 91 | + - `%util`: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率 |
| 92 | +- **总结** |
| 93 | + - `iowait%` 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。 |
| 94 | + - `%util` 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态 |
| 95 | + |
| 96 | +#### 命令:sar(综合) |
| 97 | + |
| 98 | +- sar(system activity reporter 系统活动情况报告) |
| 99 | +- sar 是目前 linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动情况进行报告。包括(文件的读写、系统调用、磁盘I/O、cpu效率、内存使用、进程活动以及IPC有关的活动) |
| 100 | +- 如果没安装,运行:`yum install -y sysstat` |
| 101 | + |
| 102 | +##### sar 之 CPU 使用情况(判断 CPU 瓶颈) |
| 103 | + |
| 104 | +- 命令:`sar -u 5 10`,每 5 秒采样一次,共 10 次 |
| 105 | + |
| 106 | +``` |
| 107 | +01:57:29 PM CPU %user %nice %system %iowait %steal %idle |
| 108 | +01:57:34 PM all 1.81 0.00 0.40 0.00 0.00 97.78 |
| 109 | +01:57:39 PM all 0.20 0.00 0.40 0.00 0.00 99.39 |
| 110 | +01:57:44 PM all 0.40 0.00 0.60 0.00 0.00 98.99 |
| 111 | +01:57:49 PM all 0.20 0.00 0.40 0.00 0.00 99.39 |
| 112 | +01:57:54 PM all 0.80 0.00 1.41 0.00 0.00 97.79 |
| 113 | +01:57:59 PM all 0.40 0.00 0.60 0.00 0.00 98.99 |
| 114 | +01:58:04 PM all 0.20 0.00 0.40 0.00 0.00 99.39 |
| 115 | +01:58:09 PM all 0.20 0.00 0.40 0.00 0.00 99.39 |
| 116 | +01:58:14 PM all 0.40 0.00 0.61 0.00 0.00 98.99 |
| 117 | +01:58:19 PM all 0.20 0.00 0.61 0.00 0.00 99.19 |
| 118 | +Average: all 0.48 0.00 0.59 0.00 0.00 98.93 |
| 119 | +``` |
| 120 | + |
| 121 | +- 列说明: |
| 122 | + - `CPU:all` 表示统计信息为所有 CPU的平均值。 |
| 123 | + - `%user`:显示在用户级别(application)运行使用 CPU 总时间的百分比。 |
| 124 | + - `%nice`:显示在用户级别,用于nice操作,所占用 CPU总时间的百分比。 |
| 125 | + - `%system`:在核心级别(kernel)运行所使用 CPU总时间的百分比。 |
| 126 | + - `%iowait`:显示用于等待I/O操作占用 CPU总时间的百分比。 |
| 127 | + - `%steal`:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。 |
| 128 | + - `%idle`:显示 CPU空闲时间占用 CPU总时间的百分比。 |
| 129 | +- **总结**: |
| 130 | + - 1.若 `%iowait` 的值过高,表示硬盘存在I/O瓶颈 |
| 131 | + - 2.若 `%idle` 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量,可以使用内存监控命令分析内存。 |
| 132 | + - 3.若 `%idle` 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。 |
| 133 | + |
| 134 | +##### sar 之 RAM 使用情况(判断内存瓶颈) |
| 135 | + |
| 136 | +- 命令:`sar -B 5 10`,每 5 秒采样一次,共 10 次 |
| 137 | + |
| 138 | +``` |
| 139 | +02:32:15 PM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff |
| 140 | +02:32:20 PM 0.00 0.81 258.47 0.00 27.22 0.00 0.00 0.00 0.00 |
| 141 | +02:32:25 PM 0.00 0.00 611.54 0.00 300.20 0.00 0.00 0.00 0.00 |
| 142 | +02:32:30 PM 0.00 26.61 10.08 0.00 11.90 0.00 0.00 0.00 0.00 |
| 143 | +02:32:35 PM 0.00 1.62 3.64 0.00 3.84 0.00 0.00 0.00 0.00 |
| 144 | +02:32:40 PM 0.00 0.00 3.42 0.00 4.43 0.00 0.00 0.00 0.00 |
| 145 | +02:32:45 PM 0.00 0.00 3.43 0.00 3.83 0.00 0.00 0.00 0.00 |
| 146 | +02:32:50 PM 0.00 1.62 3.84 0.00 5.86 0.00 0.00 0.00 0.00 |
| 147 | +02:32:55 PM 0.00 0.00 3.41 0.00 3.82 0.00 0.00 0.00 0.00 |
| 148 | +02:33:00 PM 0.00 2.42 763.84 0.00 208.69 0.00 0.00 0.00 0.00 |
| 149 | +02:33:05 PM 0.00 13.74 2409.70 0.00 929.70 0.00 0.00 0.00 0.00 |
| 150 | +Average: 0.00 4.68 406.50 0.00 149.69 0.00 0.00 0.00 0.00 |
| 151 | +``` |
| 152 | + |
| 153 | +- `pgpgin/s`:表示每秒从磁盘或SWAP置换到内存的字节数(KB) |
| 154 | +- `pgpgout/s`:表示每秒从内存置换到磁盘或SWAP的字节数(KB) |
| 155 | +- `fault/s`:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor) |
| 156 | +- `majflt/s`:每秒钟产生的主缺页数 |
| 157 | +- `pgfree/s`:每秒被放入空闲队列中的页个数 |
| 158 | +- `pgscank/s`:每秒被kswapd扫描的页个数 |
| 159 | +- `pgscand/s`:每秒直接被扫描的页个数 |
| 160 | +- `pgsteal/s`:每秒钟从cache中被清除来满足内存需要的页个数 |
| 161 | +- `%vmeff`:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比 |
| 162 | + |
| 163 | +##### sar 之 I/O 使用情况(判断 I/O 瓶颈) |
| 164 | + |
| 165 | +- 命令:`sar -b 5 10`,每 5 秒采样一次,共 10 次 |
| 166 | + |
| 167 | +``` |
| 168 | +02:34:13 PM tps rtps wtps bread/s bwrtn/s |
| 169 | +02:34:18 PM 3.03 0.00 3.03 0.00 59.80 |
| 170 | +02:34:23 PM 0.00 0.00 0.00 0.00 0.00 |
| 171 | +02:34:28 PM 0.00 0.00 0.00 0.00 0.00 |
| 172 | +02:34:33 PM 0.00 0.00 0.00 0.00 0.00 |
| 173 | +02:34:38 PM 1.61 0.00 1.61 0.00 24.80 |
| 174 | +02:34:43 PM 0.00 0.00 0.00 0.00 0.00 |
| 175 | +02:34:48 PM 0.40 0.00 0.40 0.00 4.86 |
| 176 | +02:34:53 PM 0.00 0.00 0.00 0.00 0.00 |
| 177 | +02:34:58 PM 0.00 0.00 0.00 0.00 0.00 |
| 178 | +02:35:03 PM 0.00 0.00 0.00 0.00 0.00 |
| 179 | +Average: 0.50 0.00 0.50 0.00 8.94 |
| 180 | +``` |
| 181 | + |
| 182 | +- `tps`:每秒钟物理设备的 I/O 传输总量 |
| 183 | +- `rtps`:每秒钟从物理设备读入的数据总量 |
| 184 | +- `wtps`:每秒钟向物理设备写入的数据总量 |
| 185 | +- `bread/s`:每秒钟从物理设备读入的数据量,单位为块/s |
| 186 | +- `bwrtn/s`:每秒钟向物理设备写入的数据量,单位为块/s |
| 187 | + |
| 188 | +##### sar 之 DEV(网卡)流量查看(判断网络瓶颈) |
| 189 | + |
| 190 | +- 命令:`sar -n DEV`,查看网卡历史流量(因为是按时间显示每棵的流量,所以有很多) |
| 191 | +- 如果要动态显示当前的网卡流量:`sar -n DEV 1` |
| 192 | +- 采样收集网卡流量:`sar -n DEV 5 10`,每 5 秒采样一次,共 10 次 |
| 193 | +- 如果要查看其他日期下的记录,可以到这个目录下:`cd /var/log/sa` 查看下记录的文件,然后选择一个文件,比如:`sar -n DEV -f /var/log/sa/sa01`) |
| 194 | + |
| 195 | +``` |
| 196 | +01:46:24 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s |
| 197 | +01:46:25 PM lo 3.00 3.00 0.18 0.18 0.00 0.00 0.00 |
| 198 | +01:46:25 PM eth0 4.00 4.00 0.55 0.56 0.00 0.00 0.00 |
| 199 | +``` |
| 200 | + |
| 201 | +- `01:46:25 PM` 表示时间 |
| 202 | +- `IFACE` 表示网卡名称 |
| 203 | +- `rxpck/s` 每秒钟接收到的 **包数目**,一般如果这个数字大于 4000 一般是被攻击了。 |
| 204 | +- `txpck/s` 每秒钟发送出去的 **包数目** |
| 205 | +- `rxkB/s` 每秒钟接收到的数据量(单位kb),一般如果这个数字大于 5000 一般是被攻击了。 |
| 206 | +- `txkB/s` 每秒钟发送出去的数据量(单位kb) |
| 207 | +- `rxcmp/s`:每秒钟接收到的压缩包数目 |
| 208 | +- `txcmp/s`:每秒钟发送出去的压缩包数目 |
| 209 | +- `txmcst/s`:每秒钟接收到的多播包的包数目 |
| 210 | + |
| 211 | + |
7 | 212 | ## CPU 的基本信息查看 |
8 | 213 |
|
9 | 214 | - Demo CPU 型号:[Intel® Xeon® Processor E5-2620 v2(15M Cache, 2.10 GHz)](http://ark.intel.com/products/75789/Intel-Xeon-Processor-E5-2620-v2-15M-Cache-2_10-GHz) |
@@ -109,7 +314,6 @@ Timing cached reads: 3462 MB in 2.00 seconds = 1731.24 MB/sec |
109 | 314 | Timing buffered disk reads: 806 MB in 3.00 seconds = 268.52 MB/sec |
110 | 315 | ``` |
111 | 316 |
|
112 | | - |
113 | 317 | ## 网络监控 |
114 | 318 |
|
115 | 319 | - 安装 iftop(需要有 EPEL 源):`yum install -y iftop` |
@@ -161,13 +365,19 @@ tcp6 0 0 :::8066 :::* LISTEN |
161 | 365 | tcp6 0 0 :::43107 :::* LISTEN 12011/java |
162 | 366 | ``` |
163 | 367 |
|
| 368 | +- 查看当前连接80端口的机子有多少:`netstat -an|grep 80|sort -r` |
| 369 | +- 查看已经连接的IP有多少连接数:`netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n` |
| 370 | + |
| 371 | + |
164 | 372 |
|
165 | 373 | ## 参考资料 |
166 | 374 |
|
167 | 375 | - <http://man.linuxde.net/dd> |
168 | 376 | - <https://linux.cn/article-6104-1.html> |
169 | 377 | - <http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858923.html> |
170 | 378 | - <http://coolnull.com/3649.html> |
| 379 | +- <http://www.rfyy.net/archives/2456.html> |
| 380 | +- <http://programmerfamily.com/blog/linux/sav.html> |
171 | 381 |
|
172 | 382 |
|
173 | 383 |
|
|
0 commit comments