解决性能瓶颈的一些思路

问题:服务器为何极限压力<1000?

1、采用简单Server模型

2、接收query->计算->应用cache(读写文件)->返回结果

3、返回结果数据量50KB-200KB

CPU是否为瓶颈?

方法一:

#vmstat 1 

查看idle值,看CPU是否为瓶颈

方法二:

#mpstat -P ALL 1

方法三:top

查看iowait

小结:CPU利用率

一、总CPU利用率---vmstat

二、每个CPU核的利用率---mpstat

三、每个进程的CPU利用率---top/pidstat

四、信息来源:/proc/stat和/proc/$pid/stat

MEM是否为瓶颈?

方法 一:

free -m 

方法 二:

cat /proc/meminfo 和free

top可以看哪个进程使用

cat /proc/slabinfo 内核内存总体使用情况

cat /proc/buddyinfo

网络是否为瓶颈?

一、查看网络流量  sar命令

sar -n DEV 1 100 -网卡流量

sar -n EDEV 1 100 -网卡丢包

数据来源: /proc/net/dev

二、链路层  ethtool

ethtool -S eth0  -网卡丢包

ethtool eth0

ethtool -i eth0

ethtool -p eth0 N sec

ethtool -K eth0  查看网卡高级功能开启情况

数据来源:ioctl() 从网卡硬件中读取 

三、TC层    

tc -s qdisc show   -TC丢包

数据来源:socket(AF_NETLINK, SOCK_RAW, ...)

四、tcp/IP层

netstat -s   -IP丢包

数据来源:/proc/net/netstat , /proc/net/snmp

IO是否成为瓶颈?

一、iostat -x 1

数据来源:iostat - /proc/diskstats

二、iotop

原文地址:https://www.cnblogs.com/aiguang/p/3570930.html