linux性能分析
1》cpu:影响邮件服务器、动态web服务器等
2》内存:影响打印服务器、数据库服务器、静态web服务器
3》磁盘I/O性能:独立磁盘冗余阵列(磁盘阵列)
RAID0:将多块磁盘粘合成一个容量更大的磁盘组,提高磁盘性能和吞吐量,成本低。至少需要2会磁盘,没有容错和数据修复功能,只能用在对数据安全性要求不高的环境中。
RAID1:磁盘镜像,将一个磁盘的数据镜像到另外一个磁盘上,最大限度的保证磁盘数据的可靠性,数据冗余能力高,但磁盘利用率只有50%,成本高,多用在保存重要数据的场合
RADI5:磁盘分段奇偶检验技术,提高系统的可靠性,读效率高,写效率一般,至少需要3块磁盘,允许一块磁盘故障,不影响数据的可用性。
RAID0+1:把RAID0+RAID1技术结合起来,至少需要4块磁盘,每个盘都有镜像盘,提高冗余能力,并具有快速读写的能力
4》网络带宽
系统性能分析工具
常用命令:
vmstat sar iostat netstat free ps top ...
用vmstat、sar、iostat检测是否是cpu瓶颈
用free、vmstat检测是否是内存瓶颈
用iostat检测是否是磁盘I/O瓶颈
用netstat检测是否是网络带宽瓶颈
1》系统整体性能评估(uptime)
[root@room9pc01 ~]# uptime 15:22:09 up 6:03, 4 users, load average: 1.36, 1.68, 1.47
说明:load average的3个值大小一般不能大于系统cpu的个数
2》cpu性能评估
1.利用vmstat监控
[root@room9pc01 ~]# vmstat 2 3 # 每2秒更新信息,统计3次 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 599536 136872 3630880 0 0 29 115 152 160 18 3 75 5 0 0 0 0 599240 136880 3630912 0 0 0 666 4940 8269 15 5 77 3 0 1 0 0 598868 136888 3630904 0 0 0 118 4854 8314 14 4 80 1 0
r列表示运行和等待cpu时间片的进程数,长期打一系统cpu个数,说明cpu不足,需要增加cpu
b列表示正在等待资源的进程数,如等待I/O,内存交换等
us列显示用户进程消耗的cpu时间百分比,长期大于50%,需要考虑优化程序或算法
sy列显示内核消耗进程的cpu时间百分比。us+sy大于80%说明cpu资源不足
2.利用sar命令监控
[root@room9pc01 ~]# sar -u 3 5 # u 显示系统所有cpu在系统采用时间内的负载状态 Linux 3.10.0-327.el7.x86_64 (room9pc01.tedu.cn) 2019年02月16日 _x86_64_(4 CPU) 15时36分20秒 CPU %user %nice %system %iowait %steal %idle 15时36分23秒 all 15.56 0.00 2.48 2.14 0.00 79.83 15时36分26秒 all 13.13 0.00 2.32 1.55 0.00 83.00 15时36分29秒 all 14.49 0.00 2.57 2.14 0.00 80.79 15时36分32秒 all 14.45 0.00 2.24 1.98 0.00 81.34 15时36分35秒 all 14.74 0.00 1.80 1.54 0.00 81.92 平均时间: all 14.47 0.00 2.28 1.87 0.00 81.38
3》内存性能评估
1.利用free命令监控
[root@room9pc01 ~]# free -m # 查看以m为单位的内存使用情况 total used free shared buff/cache available Mem: 15768 11574 487 449 3706 3307 Swap: 0
说明; 应用程序可用内存/系统物理内存<20%表示系统内存资源紧缺,需增加系统内存
4》磁盘I/O性能评估(iostat)
[root@room9pc01 ~]# iostat -d 2 3 Linux 3.10.0-327.el7.x86_64 (room9pc01.tedu.cn) 2019年02月16日 _x86_64_ (4 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 39.73 97.63 440.73 2265678 10228156 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 34.83 0.00 409.95 0 824 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 33.50 0.00 272.00 0 544
查看tcp链接数
[root@room9pc01 ~]# netstat -an | awk '/^tcp/{++s[$NF]}END{for (a in s) print a,s[a]}'
LISTEN 22
CLOSE_WAIT 1
ESTABLISHED 4
SYN_SENT 6
查看连接数最多的ip
[root@room9pc01 logs]# ss -pant | grep ":80" | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr
[root@room9pc01 logs]# cat /etc/httpd/logs/access_log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10