Linux服务器性能追踪以及服务器监控经常使用命令

在网站性能优化中,咱们常常要检查服务器的各类指标,以便快速找到害群之马。大多状况下,咱们会使用cacti、nagois或者zabbix之类的监控软件,可是这类软件安装起来比较麻烦,在一个小型服务器,咱们想尽快找到问题所在,仍是要使用Linux提供的一些命令。 linux

1. 内存检查:free -m
ios

注意,重点看的是第二行,-/+ buffers/cache行,第一个数字是实际消耗的内存,第二个是实际空闲的内存。

2. 系统进程监控 top
Top命令注意看输出的第2、第三行。第二行(Tasks)表示系统运行的进程数,这个数值通常不能太大,好比超过300、甚至400-500,这个比较容易理解,咱们通常开启的服务、进程外加系统进程都不会太多,太多确定有问题。第三行表示CPU的使用状况。
Top能够按 M按内存使用排序,P按CPU使用状况排序。 性能优化

3. 进程监控增强版 htop
htop提供了比top更强大的功能,推荐安装。能排序、查找、显示进程树等功能。
htop还有一个强大的功能的,就是strace,按s能够直接对选中进程进行strace。
bash

strace效果图以下: 服务器

 

4. 找出害群之马 (ps命令)
若是经过top、htop、free以及iostat、vmstat(后面会讲)对系统分析后,咱们接下来就要找系统的问题进程了。在top、htop中咱们通常能够直观的看出究竟是那个进程出问题了,不过有时这两个命令不能彻底肯定,咱们还要使用ps确认系统中的最差进程。 网络

自定义输出格式 -o 能够定义咱们想要显示的列,列名基本和输出的表头同样,只是要小写,以下:
ps -A -o %mem, %cpu 性能

找到实例运行过多的进程(服务器监测特别有用)
优化

能够看到httpd进程比较多,(uniq多是只要各行的,再也不计重复行,从新数),所以咱们能够再加个sort (k表示按那一列排序),以下: 网站

这样httpd进程能够看到18个,有助于咱们找到异常的服务器行为。若是要区分用户,能够加一个output,如: spa

ps -A -o user,comm |sort -k2| uniq -c |sort -k1 -rn

找到内存使用最多的进程

ps -eo rss,pmem,pcpu,vsize,args | sort -k 1 -r -n

同理,找到CPU消耗最多的进程

ps -eo rss,pmem,pcpu,vsize,args | sort -k 2 -r -n

(其实主要的是理解sort -k和ps -o就能够)

4. IO监控iostat
iostat也是系统监控经常使用的命令,能够看到各个磁盘的IO状况,其余参数再也不赘述,主要说明一个参数。iostat -x会输出 %util列。
定义:
%util: 一秒中有百分之多少的时间用于 I/O 操做,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (由于use的单位为毫秒)
若是 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
通常状况下,%util应该越小越好,10%如下正常,30%IO比较繁忙。50%以上通常是有问题的。能够配合%idle,该值太小系统确定是有问题的。

5. vmstat 系统监控
vmstat和IO差不过,不太重点是监控cpu、内存等系统资源。
对内存监控,咱们比较关心swpd、free、si、so。通常系统不繁忙的状态下,咱们看到swpd,so的值不会持续很高,常常为0。若是swpd太高,那么就是系统内存常常不够用。
对CPU监控,咱们能够查看r(运行进程数)、us、sy、id(空闲CPU),若是r的数字大于系统CPU个数,则面临CPU不够用的危险,经过id(CPU空闲比例)分析,若是太小,则能够判断是CPU不足。
其余参数再也不赘述。

6. 网络流量监控 iftop
最后咱们谈一下网络流量的监控,网络流量对于系统来讲也是很重要的。请安装iftop来监控网络浏览资源。因为界面缩放比较困难,从网上找了一张图参考:

中间的这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

其中有几个命令比较有用,按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;按T切换是否显示每一个链接的总流量;按p切换是否显示端口信息。其余的命令能够按h进入帮助查看。

相关文章
相关标签/搜索