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