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动作是否频繁



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



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:闲置时间。



以上是在进行服务器负载测试过程中常用的几个监控命令,通过汇总监控结果,对服务器资源进行评估分析是否负载过高或存在瓶颈。以处未考虑应用层面和数据库层面的基础配置以及服务器内核配置。