1.负载值最好不要超过CPU的个数
2.vmstat 应该关注r列,b列,swapd列(与内存相关),bi/bo(与磁盘相关),us, wa
3.top -bn1, 静态显示进程的情况,通常用在shell脚本中
4.sar -DEV, 网卡流量 (rxKB/s & txKB/s),通常情况下一台服务器应该是出流量高,当web服务器遇到攻击时进网卡流量就会很高
5.nload, 也时查看网卡流量但是比sar -DEV更加直观
6.iostat -d,可以只关注磁盘的情况;iostat -x, 可以显示%util,%util数值高,表明磁盘可能有问题
经常用于查看数据库服务器
7.# netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
这条命令可以把当前系统的网络连接状态分类汇总。
8.排查
扩展
TCP 三次握手四次挥手
https://note.youdao.com/share/?token=EDADC1F6E2BF4DB4827120317816091C&gid=28142651#/
-
三次握手为了建立可靠的数据传输
·SYN:同步标志
同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。在这里,可以把TCP序列编号看作是一个范围从0到4,294,967,295的32位计数器。通过TCP连接交换的数据中每一个字节都经过序列编号。在TCP报头中的序列编号栏包括了TCP分段中第一个字节的序列编号。
·ACK:确认标志
确认编号(Acknowledgement Number)栏有效。大多数情况下该标志位是置位的。TCP报头内的确认编号栏内包含的确认编号(w+1,Figure-1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。
通俗的讲法就是客户端问服务器你现在OK吗,服务器说我OK的,你呢,客户端说我也OK, 我们开始传输数据吧
-
四次挥手为了断开连接
为什么建立连接是三次握手,而关闭连接却是四次挥手呢?知乎https://zhuanlan.zhihu.com/p/35768805
这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。
TIME_WAIT解释