1、查看http的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
结果分析:
TIME_WAIT 1---等待线程连接
ESTABLISHED 45--当前已经建立的连接
2、CPU负载 # cat /proc/loadavg
检查前三个输出值是否超过了系统逻辑CPU的4倍。若超过4倍则服务器CPU存在瓶颈;
或用命令
#mpstat 1 1
检查%idle是否过低(比如小于5%)以及iowait; 可以直接监控CPU空闲百分比,以及IOwait值,若IOWAIT值过大(比如超过20%)则服务器存在IO等待瓶颈;
3、内存空间 # free
检查free值是否过低 也可以用 # cat /proc/meminfo
检查swap used值是否过高 如果swap used值过高,进一步检查swap动作是否频繁
另外,利用vmstat 命令监控 si与so值是否过大,若过大则说明内存存在瓶颈;
4、磁盘空间 # df -h
检查是否有分区使用率(Use%)过高(比如超过90%)
如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录:
# du -cks * | sort -rn | head -n 10
5、磁盘I/O负载 # iostat -x 2
检查I/O使用率(%util)是否超过100%
如%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如idle小于70%,I/O的压力就比较大了,说明读取进程中有较多的wait。
6、查看平均负载:uptime
uptime--查看过去的1分钟、5分钟和15分钟内进程队列中的平均进程数量。
load average三值大小一般不能大于系统CPU的个数。
系统有8个CPU,如load average三值长期大于8,说明CPU很繁忙,负载很高,可能会影响系统性能。
类似于top命令第一行:
top - 21:33:09 up 1:00, 1 user, load average: 0.00, 0.01, 0.05
如果每个逻辑cpu当前的活动进程不大于3,则系统性能良好;
如果每个逻辑cpu当前的活动进程不大于4,表示可以接受;
如果每个逻辑cpu当前的活动进程大于5,则系统性能问题严重。
7、网络负载 # sar -n DEV
检查网络流量(rxbyt/s, txbyt/s)是否过高
这个瓶颈与否需要结合服务器网络资源大小进行对比分析,如:服务器网络带宽1G,网卡为千兆带宽,若流量读写超过网卡带宽则网络资源存在瓶颈;
8、用户 # who | wc -l
检查登录用户是否过多 (比如超过50个) 也可以用命令:# uptime
9、
vmstat
命令
还可以结合vmstat命令来判断系统是否繁忙,其中:
procsr:等待运行的进程数。(
运行和等待cpu时间片的进程数,这个值如果长期大于系统CPU的个数,说明CPU不足,需要增加CPU
)
b:处在非中断睡眠状态的进程数。(
在等待资源的进程数,比如正在等待I/O、或者内存交换等。
)
w:被交换出去的可运行的进程数。
memeoryswpd:虚拟内存使用情况,单位为KB。
free:空闲的内存,单位为KB。
buff:被用来作为缓存的内存数,单位为KB。
swapsi:从磁盘交换到内存的交换页数量,单位为KB。
so:从内存交换到磁盘的交换页数量,单位为KB。
iobi:发送到块设备的块数,单位为KB。
bo:从块设备接受的块数,单位为KB。
systemin:每秒的中断数,包括时钟中断。
cs:每秒的环境切换次数。cpu按cpu的总使用百分比来显示。
us:cpu使用时间。
sy:cpu系统使用时间。
id:闲置时间。
以上是在进行服务器负载测试过程中常用的几个监控命令,通过汇总监控结果,对服务器资源进行评估分析是否负载过高或存在瓶颈。以处未考虑应用层面和数据库层面的基础配置以及服务器内核配置。