知識庫
據外媒報道,美國一家網上賭場集團泄露了超過 1.08 億筆投注信息,包括客戶個人資料,存取款記錄、家庭住址、電話號碼、電子郵件地址、出生日期、網站用戶名、帳戶余額、IP 地址、瀏覽器、操作系統信息、上次登錄信息和游戲列表,甚至包含當前投注、獲勝、用于交易的銀行卡等詳細信息??上攵嗯_公司服務器資源,通過監控工具進行網站服務器的監測異常重要。
服務器監測除了部署webapp之外,還需要服務的異常信息與服務器性能指標進行監控,一旦有異常則通知管理員。編寫腳本檢測錯誤日志和服務器性能指標,服務運行監控, 錯誤日志包含以下三個方面:nginx 錯誤信息監控、 tomcat 錯誤信息監控、webapp錯誤信息監控。
服務器測試:http://www.ukunilife.com/dedicated/hk.html
服務器性能指標包括:CPU(Load) CPU使用率/負載、Memory 內存、Disk 磁盤空間、Disk I/O 磁盤I/O、Network I/O 網絡I/O、Connect Num 連接數、File Handle Num 文件句柄數…
和手機運行內存類似,開啟的程序越多,手機越卡,服務器CPU占有率越高,說明服務器開啟程序越多。除了程序運行,還會有I/O(磁盤I/O與網絡I/O)部分,當在處理I/O時,時間片未完其CPU也會釋放,因此某個時間點的CPU占有率沒有太大的意義,因此需要計算一段時間內的平均值,就是平均負載:它是根據一段時間內占有CPU的進程數目和等待CPU的進程數目計算出來的,即指那些就緒狀態的進程,運行只缺CPU這個資源。具體如何計算可以參見Linux內核代碼,計算出一個數之后,然后除以CPU核數,結果:
<=3 則系統性能較好。<=4 則系統性能可以,可以接收。>5 則系統性能負載過重,可能會發生嚴重的問題,那么就需要擴容了,要么增加核,要么分布式集群。
查看命令:vmstat、vmstat n m,n表示每隔n秒采集一次,m表示一共采集多少次,如果m沒有,那么會一直采集下去. 在終端鍵入 vmstat 5
內存也是系統運行性能的一個很重要的指標,如果一個機器內存不足,那么將會導致進程運行異常而退出。如果進程發生內存泄漏,則會導致大量內存被浪費而無足夠可用內存。內存監控一般包括total(機器總內存)、free(機器可用內存)、swap(交換區大小)、cache(緩存大小)等。
swap in (si) == 0,swap out (so) == 0,可用內存/物理內存 >= 30%;Disk,Use% <= 90%,Disk I/O,I/O等待的請求比例 <= 20%
Network I/O,,UDP包丟包率與TCP包重傳率不能超過1%/s。Connect Num,<= 1024,File Handle Num,num/max_num <= 90%
服務器磁盤監控:機器的磁盤空間也是一個重要的指標,一旦使用率超過閾值而使得可用不足,那么就需要進行擴容或者清除一些無用的文件。磁盤空間也是一個重要的指標,一旦磁盤I/O過重,那么說明運行的進程在大量的文件讀寫并且cache命中率低。那么一個簡單的方法便是增大文件緩存大小來提高命中率從而降低I/O。
在Linux中,內核希望能盡可能產生次缺頁中斷(從文件緩存區讀),并且能盡可能避免主缺頁中斷(從硬盤讀),這樣隨著缺頁中斷的增多,文件緩存區也逐步增大,直到系統只有少量可用物理內存的時候 Linux 才開始釋放一些不用的頁。引用[1]
查看命令:vmstat。bi :塊設備每秒接收的塊數量,這里的塊設備是指系統上所有的磁盤和其他塊設備,默認塊大小1024byte。
服務器網絡I/O監控:
如果服務器網絡連接過多,那么會造成大量的數據包在緩沖區長時間得不到處理,一旦緩沖區不足,便會造成數據包丟失問題,對于TCP,數據包丟失便會進行重傳,這有會導致大量的重傳;對于UDP,數據包丟失不會進行重傳,那么數據便會丟失。因此,服務器的網絡連接不宜過多,需要進行監控。
服務器一般接收UDP與TCP請求,都是無狀態連接,TCP(傳輸控制協議)是一種提供可靠的數據傳輸協議,UDP(用戶數據報協議)是一種面向無連接的協議,即其傳輸簡單但不可靠。關于它們二者之間的區別,可以查閱相關資料。
查看命令:netstat、(2) 進一步查看UDP接收的數據包情況 netstat -su
畫圈的便是UDP數據包丟失統計,該項值增加了,說明存在udp數據包丟失,即網卡收到了,但是應用層沒有來得及處理而造成的丟包。
TCP:(2) 查看重傳率,因為TCP是可靠傳輸協議,如果數據包丟失會進行重傳,因此TCP需要查看其重傳率.
分析:UDP丟包率或者TCP重傳率不能高于多少,這兩個值由系統開發定義,此處,拍腦袋決定UDP包丟包率與TCP包重傳率不能超過1%/s。