cpu 性能评估
grep "processor" /proc/cpuinfo|wc -l《=查看 cpu 个数
vmstat 3 5
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 79636 145384 182388 0 0 9 19 99 119 3 1 95 0 0
0 0 0 79184 145392 182404 0 0 0 25 139 124 6 2 92 0 0
0 0 0 79440 145392 182412 0 0 0 3 275 145 15 7 78 0 0
2 0 0 79448 145400 182408 0 0 0 17 128 126 5 2 93 0 0
0 0 0 79480 145400 182404 0 0 0 19 136 118 6 2 92 0 0
r 表示运行或等待 cpu 时间片的进程数,如果该值长时间大于 cpu 个数说明 cpu 资源不足。
bi+bo 参考值为 1000,如果大于 1000,而且 wa 值较大,说明 i/o 有问题,要想办法提高磁盘读写性能。
si 、 so 长时间不为 0 说明内存不足。
us 大于 50 说明用户进程占用过大的 cpu 资源,要优化应用程序。
us+sy 参考值 80,如果大于 80 说明 cpu 资源可能不足。
wa 参考值为 20,如果大于 20 说明磁盘读写性能有问题。
id 表示 cpu 空闲值。
sar -u 3 5 对某个系统 cpu 的统计
16:13:43 CPU %user %nice %system %iowait %steal %idle
16:13:46 all 6.08 0.00 6.08 0.00 0.00 87.84
16:13:49 all 13.27 0.00 9.18 0.00 0.00 77.55
16:13:52 all 14.97 0.00 5.78 0.00 0.00 79.25
16:13:55 all 6.73 0.00 6.06 0.00 0.00 87.21
16:13:58 all 4.05 0.00 4.73 0.34 0.00 90.88
Average: all 9.00 0.00 6.36 0.07 0.00 84.56
%nice 正常运行进程占用 cpu 时间的百分比。
%steal 表示内存紧张时 pagein 强制对不同页面做 steal。
注意的是第一行的统计信息包含使用 sar 命令消耗的统计。
sar -P 0 3 5 针对某个 cpu 进行统计,cpu 是从 0(表示第一颗 cpu)开始计数。由于有些程序是单线程导致整体 cpu 占用不高,某个使用了百分之百,其他空闲着,导致程序很慢。
uptime 命令的输出,load average 三个值的大小一般不能大于 cup 个数,大于 cpu 个数说明 cpu 很忙忙负载很高,偶尔大于也不用太担心。
iostat -c 只显示 cpu 信息。
内存性能评估
free -m -s 5(m 表示以 mb 为单位显示,5 表示每隔 5 秒输出一次)
total used free shared buffers cached
Mem: 981 905 75 24 145 179
-/+ buffers/cache: 581 400
Swap: 2047 0 2047
一半情况可用内存(used +buffer+cached)/总的物理内存 >70% 说明内存重装,大于 20% 小于 70% 说明勉强够用,小于 20% 表示内存资源紧缺。
可用内存计算脚本如下:
free -m|sed -n '2p'|awk '{print ($4+$6+$7)/$2*100"%"}'
watch 是个非常有用的命令即在 watch 后面数据需要执行的命令,默认每隔 2 秒重新执行一次这个命令,watch -n 3 -d free -m,n 表示重复执行的时间间隔,d 表示高亮显示变化。
vmstat 命令也可关注内存,重点关注 swpd、si、so 参数。
sar -r 2 3 也可统计内存。不仅输出使用量还输出使用的百分比。现在内存很便宜,一般内存都很大,一半都满足要求,如出现不足都是应用程序本身造成的。
磁盘 I/O 性能评估
首先对 raid 了解不同的场景使用不同的 raid 组合方式或考虑使用裸设备(缺点是数据管理、空间管理不灵活,需要很专业的人士操作)。
sar -d 2 3
Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
Average: dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: dev8-0 2.36 0.00 32.38 13.71 0.00 2.00 0.71 0.17
Average: dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
%util 表示 1 秒中有百分之几的时间用来 i/o 操作。
tps 表示每秒到物理磁盘的传送数,也就是每秒的 I/O 流量。一个传送就是一个 I/O 请求,多个逻辑请求可以合并为一个物理 I/O 请求。
iostat -d 2 3
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.00 0.01 0.00 264 0
sda 1.87 15.05 39.30 561380 1466250
sdb 0.01 0.12 0.00 4586 64
iostat -x /dev/sda 2 3 对每个磁盘的单独统计。
要解决 I/O 的瓶颈,关键是要提高 I/O 子系统的执行效率。首要,要从应用程序上对磁盘读写进行优化,能够放到内存中执行的操作,尽量不要放到磁盘上。其次,对磁盘存储方式进行合理规划,选择适合自己的 RAID 存取方式。最后,在系统级别上,可以选择适合自身应用的文件系统类型,必要时使用裸设备提高读写性能。
网络性能评估
首先用 ping 检查联通性 ping 192.168.179.130
PING 192.168.179.130 (192.168.179.130) 56(84) bytes of data.
64 bytes from 192.168.179.130: icmp_seq=1 ttl=64 time=0.306 ms
64 bytes from 192.168.179.130: icmp_seq=2 ttl=64 time=0.191 ms
64 bytes from 192.168.179.130: icmp_seq=3 ttl=64 time=0.194 ms
9 packets transmitted, 9 received, 0% packet loss, time 8530ms
time 显示两台主机之间的网络延时情况,单位为毫秒,此值越大表示网络延时很大。
packet loss 表示丢包率,此值越小表示网络质量越好。
[root@ppzCentos1 ~]# netstat -i 提供网络接口的详细信息
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 54998 0 0 0 73183 0 0 0 BMRU
lo 65536 0 47231 0 0 0 47231 0 0 0 LRU
通信术语 最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。
netstat -r/route 检查系统的路由表信息。
sar -n DEV 2 3 显示网络的运行状态。
统计网络连接数:
netstat -n|grep "ESTABLISHED"|wc -l
统计 ip 的连接数:
netstat -n|grep "ESTABLISHED"|awk -F"[ :]+" '{print $6}'|sort|uniq -c
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于