標籤:

阿里雲工程師解決不了IO問題?

最近我的伺服器莫名假死。

阿里雲ECS

伺服器是裝NGINX 和 PHP

跑了4個網站,兩個Drupal 一個wordpress 一個thinkphp

阿里工程師讓我裝一個TOPIO來插排問題。

現在關鍵問題是,伺服器正常的時候,IO沒有任何問題一切正常。

只有在伺服器假死後,IO是跑滿的。但最頭疼的是,在伺服器假死的時候,根本沒有辦法SSH到伺服器。阿里雲終端連接也不行。

所以在伺服器假死的時候,根本不能進入伺服器排查問題。

誰有辦法解決這個阿里工程師也比較頭疼的問題呢?


這不是錢的問題,是價值觀的問題


不是說賠百倍嗎?


超賣太多了就這樣。


試試腳本自己記錄日誌,事後上去看。


後台寫個程序, 每隔一秒建立連接然後關閉. 同時打log. 等到下次伺服器出問題的時候看看系統抱錯是啥. 我猜是Too many open files.


內部也討論熱火朝天,解決不了。。。


1.是iotop,不是TOPIO。

2.性能監控直接寫文件,這樣即使伺服器假死也能繼續輸出監控信息。

3.監控,請把cpu、內存、存儲io、網路io等全部監控。包括但不限於top、iotop、iostat、dstat等。


應該是外部加熱導致的


都忙雲棲大會去了,誰有空管你啊


以前在這類部門呆過,明確告訴你,如果你確定你自己業務上不會出現類似問題,那就是母雞上其他子雞的問題,畢竟他們io隔離也就那麼回事。。。


我們有個小的Minecraft伺服器放在阿里雲。一度kswapd狂吃CPU,多次發ticket無解。

最後我們搞了個臟補丁:開機自動調低kswapd進程優先順序,並調高java的優先順序。

反正遊戲能玩兒就行。


我在阿里雲跑了好幾個月的odoo,2cpu配置的那種,上上個月開始經常卡死 ,最後直接無法正常使用。 cpu也並無滿負載。 重裝系統還原數據回去,問題依然存在。 花70塊錢買了個linode最低配,裝odoo,還原數據,絲般流暢。 人家還是境外節點,還是單核。 同樣的系統,同樣的安裝方法,同樣的數據哭還原,天差地別的結果。 最近另一台北京節點伺服器也是對威海地區頻繁卡頓。 其他地區正常。


多半是阿里雲盾給跑滿的


先查一下伺服器假死的規律性,是跟時間有關聯,還是跟運行的程序有關聯。

以前有碰到過類似假死的情況,就是伺服器不能正常提供服務了,但登陸進去又沒問題,查了很久發現非頁面緩衝池的數據異常,是由一個安全軟體引起的,解決辦法也是簡單粗暴,定時重啟。


沒讓你升配置么


我來猜測一下, 首先你ssh都連不上,感覺cpu佔用率應該也很高了, cpu佔用率高, 磁碟io高, 我能想到的問題就是內存不夠用了, kswap在緊張工作. 然後順著這個思路, 看看能不能發現問題

對了, 題主最好發一下你的ECS的配置


帶寬夠嗎?


是的,他們真的解決不了!!!


謹慎懷疑是內存不夠了,你在sysconf文件把系統的保留內存設置一下,ecs系統盤的IOPS和吞吐還是不錯的,我覺得你的應用把IO打滿要比內存打滿困難些。


io跑滿有幾種狀況,假死的時候有沒有留意過網站的連接數多少?

ssh跟控制台都進不去,這個是重點

很大的可能性是配置調優的時候,修改文件描述符限制為65536.這個是系統的最大值,如果跑滿的時候,控制台是進不去的。然額好多blog都是這麼寫的。呵呵。

可以嘗試這麼做,整理伺服器上的服務,例如nginx跟php,然後配置不同的運行用戶(都不要用root),不同用戶分別限制文件描述符數量,總量不超過6w個。留一些給控制台跟系統用。

觀察一段時間,還會不會出現服務假死。


推薦閱讀:

為什麼手游伺服器一般將登陸伺服器和遊戲伺服器分開?
Linux 下多線程和多進程程序的優缺點,各自適合什麼樣的業務場景?
如何使用 Go 語言寫遊戲伺服器?
對於很多發燒級PC硬體玩家來說,伺服器cpu、recc內存和RAID陣列等等伺服器上的硬體或者技術真的有必要麼?
為何多個 http 的 80 埠的站點可以共用同一個伺服器(IP),而 https 卻不行?

TAG:伺服器 | 運維 |