阿里云ECS服務器CPU占用較高時,該如何處理?
分析一下問題,看看是什么原因。
是程序bug嗎?
檢查程序,看看是否有任何異常,如無限循環等。如果有,修改一下。
查找消耗cpu的程序
看程序,看程序哪個部分消耗cpu,看程序有沒有優化的空間。可以用空間換取效率,比如使用緩存(這樣服務器就可以升級內存配置)
程序可以如果可以將它們拆分到遠程服務器,則不會被優化。如果他們能如果不進行拆分,該服務器的cpu核心和內存數量將會增加。
看看是不是內存不夠。
如果內存不足,操作系統會頻繁換頁內存,導致cpu升級。這個時候,加內存。
看io是不是卡點。
如果io是卡點,優化程序,或者換ssd或者加緩存,視具體情況而定。
看看它是否其他系統造成的。
如果程序依賴一些其他系統,比如數據庫或者其他服務,而這些服務因為性能和可用性出現問題,導致這個服務器的網絡請求堆積,這個時候cpu也會得到提升,這個時候就要分析解決依賴的服務。
前端程序被或攻擊
如果前端程序有bug或者被攻擊,也會對服務器的cpu造成壓力。如果bug解決了,如果被攻擊了,可以根據被攻擊的情況調整優化服務器。如果攻擊比較大,可以用阿里云的一些網絡安全產品。
看看服務器有沒有被黑。
如果被入侵后安裝一些后臺木馬,cpu負載會過高,它可以此時無法解決,請重新安裝新服務器、部署程序或邀請相關安全專家或服務來解決。
確實是業務量增加造成的。
那么恭喜你,如果服務設計好一點,服務器可以線性擴展的話,瓶頸服務器就擴展了;如果服務器沒有暫時不支持橫向擴展,先完善服務器配置,然后逐步拆分服務器程序架構,先拆分業務,等訪問量上去了再逐步微服務業務,然后數據庫開始分區分表,這樣壓力可以平均分擔,服務器的增加可以產生減壓效果。
網絡被人攻擊了,有什么解決辦法嗎?
可以選擇高防的云服務器。此外,CDN的使用可以有效提高網站的安全性和穩定性。由于節點分散,攻擊者很難下手。攻擊節點只會影響節點的緩存訪問。例如,"智能調度與管理;"被鳥云加速的CDN會自動啟用另一個節點,CDN服務節點的數量足夠多,那么攻擊者需要的流量包會呈幾何級增長,所以攻擊成本自然會很高。