服务器监控

1、查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态:

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

返回结果一般如下:
LAST_ACK 5 (正在等待处理的请求数)

SYN_RECV 30
ESTABLISHED 1597 (正常数据传输状态)
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057 (处理完毕,等待超时结束的请求数)
其他参数说明:
CLOSED:无连接是活动的或正在进行

LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态/当前并发连接数
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉




一般来说,tcp正常关闭需要四个包。比如a和b关闭连接,a先 给b发一个fin,b会进行确认ack,然后b也会发出fin,当a接受到这个fin,并发出最后一个ack后,就会处于time_wait状态。这个时 间长短跟操作系统有关,一般会在1-4分钟,也就是两倍的数据包(2msl)最大生存时间。TCP主动关闭方采用TIME_WAIT主要是为了实现终止 TCP全双工连接的可靠性及允许老的重复分节在网络中消逝,等过了2msl(大约1~4分钟)后TIME_WAIT就会消失。    
TIME_WAIT状态的目的是为了防止最后a发出的ack丢失,让b处于LAST_ACK超时重发FIN
   所以说,主动发起关闭连接的一方会进入time_wait状态,这个时候,进程所占用的端口号不能被释放。除非在你的程序中用setsockopt设置端口可重用(SOCK_REUSE)的选项,但这不是所有操作系统都支持的


其中的TIME_WAIT状态也成为2MSL等待状态。每个具体的TCP实现必须选择一个报文段最大生存时间MSL(maximum

segment lifetime)。它是任何报文段被丢弃前在网络内的最长时间 。我们知道这个时间是有限的,因为TCP报文段以IP

数据报在网络内传输,而IP数据报则有限制其生存时间的TTL字段。

在RFC793指出MSL为2分钟,然而,实现中的常用值是30秒,1分钟或2分钟。

对一个具体实现锁定的MSL值,处理的原则是:当TCP执行一个主动关闭,并发回最后一个ACK,该链接必须在TIME_WAIT

状态停留的时间为2倍的MSL。这样可以让TCP再次发送最后的ACK以防止这个ACK丢失。(另一端超时并重发最后的FIN)。

这种2MSL等待的另一个结果是这个TCP连接在2MSL等待期间,定义这个连接的socket(客户的IP地址和端口号,服务器

的IP地址和端口号不能被使用)。这个连接只能在2MSL结束后才能被使用。

遗憾的是,大多数TCP实现强加了更为严格的限制,在2MSL等待期间,插口中使用的本地端口在默认情况下不能再被使用。

注意:

1.一个socket对在它处理2MSL等待时,将不能再被使用。尽管许多具体的实现中允许一个进程重新使用仍处于2MSL等待的

端口(通常是设置选项SO_REUSEADDR),但TCP不能允许一个新的连接建立在相同的socket对上。

2.一个端口可同时绑定在UDP和TCP服务上,但是如果一个端口要同时绑定在两个TCP或者UDP服务上,则会出现端口已占用

的错误。因为TCP和UDP的端口在逻辑上是分离的。




2、查看Nginx运行进程数
ps -ef | grep nginx | wc -l
返回的数字就是nginx的运行进程数,如果是apache则执行
ps -ef | grep httpd | wc -l


3、查看Web服务器进程连接数:
netstat -ant | grep 80 | grep ESTABLISHED -c

netstat -na|grep ESTABLISHED|wc -l


4.当前所有80端口的请求总数

netstat -nat|grep -i "80"|wc -l


当前所有80端口的已建立连接的总数

netstat -na|grep ESTABLISHED|wc -l


4、查看MySQL进程连接数:
ps axef | grep mysqld -c

 

抓瞬间导致cpu毛刺的进程,开启top的batch模式(-b),将时间间隔调小(-d),再设置好次数(-n),将结果重定向到日志文件中,坐等大鱼上钩。

 
ps aux | head -1;ps aux|grep -v PID|sort -rn -k +3 | head 前十CPU占用
ps aux | head -1;ps aux|grep -v PID|sort -rn -k +4 | head 前十内存占用

 

端口占用

netstat -anp


指定目录下文件大小

du -sh [filename]

指定目录下文件大小倒序前十

du -s [filename] | sort -nr | head



1、 查看物理CPU的个数 
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc –l 
2、  查看逻辑CPU的个数 
#cat /proc/cpuinfo |grep "processor"|wc –l 
3、 查看CPU是几核 
#cat /proc/cpuinfo |grep "cores"|uniq  

4、 查看CPU的主频 
#cat /proc/cpuinfo |grep MHz|uniq 

5、 # uname -a 
6、 Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux   (查看当前操作系统内核信息) 7、 # cat /etc/issue | grep Linux 
8、 Red Hat Enterprise Linux AS release 4 (Nahant Update 5(查看当前操作系统发行版信息) 
9、 # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 
8  Intel(R) Xeon(R) CPU   E5410   @ 2.33GHz     (看到有8个逻辑CPU, 也知道了CPU型号) 
9 # cat /proc/cpuinfo | grep physical | uniq -c 
4 physical id      : 0 4 physical id      : 1 
(说明实际上是两颗4核的CPU) 
 
  10、# getconf LONG_BIT 
32 
       (说明当前CPU运行在32bit模式下, 但不代表CPU不支持64bit) 
 
11、# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc –l 
8(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit) 

  
12、如何获得CPU的详细信息:   linux命令:cat /proc/cpuinfo 
  13、用命令判断几个物理CPU,几个核等:   逻辑CPU个数: 
   # cat /proc/cpuinfo | grep "processor" | wc -l   物理CPU个数: 
   # cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 
  14、每个物理CPU中Core的个数: 
   # cat /proc/cpuinfo | grep "cpu cores" | wc -l   15、是否为超线程?如果有两个逻辑CPU具有相同
的”core id”,那么超线程是打开的。每个物理CPU中逻辑CPU(可能是core, threads或both)的个数: # cat /proc/cpuinfo | grep "siblings"   
  1.查看CPU信息命令   cat /proc/cpuinfo   

2.查看内存信息命令   cat /proc/meminfo  

 3.查看硬盘信息命令   fdisk -l 


cat /etc/issue 系统版本

netstat -anp 显示系统端口使用情况

lsof -i :端口 显示占用该端口的进程情况 

uname -a 内核信息

cat /proc/interrupts 显示中断信息


linux禁ping

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

将其值改为1后为禁止PING

将其值改为0后为解除禁止PING


查找安装位置

rpm -qa

之后根据这个名字

rpm -ql XXXXX

就找到安装位置了.



uptime
13:05:52 up 53 days, 52 min,  1 user,  load average: 0.00, 0.00, 0.00


CPU信息

cat /proc/cpuinfo  


内存信息

cat /proc/meminfo   


内存概况

free


监控

vmstat、vnstat、iostat、netstat、mpstat

sar


*top类: top, apachetop, mytop(mysql), mtop(mysql), iftop, iotop, htop, ntop, atop, innotop(mysql), slabtop, redesktop(远程桌面),

*stat类: iostat, vmstat, mpstat, vnstat, dstat, pidstat


前20个最大的文件 单位mb

du -Shm | sort -rn | head -20 


进程打开文件(文件句柄)数倒序排

lsof -n|awk '{print $1"\t"$2}'|sort|uniq -c|sort -n

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值