服務器監控

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章