Linux性能調優用這個「必殺技」,穩了!
「這個系統好慢、網站又打不開了,太卡了,又沒響應了!」相信大家都遇到過這種抱怨,這是應用系統出現了性能問題,需要性能調優。
性能調優,要求對計算機硬體、操作系統和應用有相當深入的了解。
調節三者之間的關係,實現整個系統(硬體、操作系統、應用)的性能最優化,不斷滿足現有的業務需求。
為什麼性能調優?
說到底就倆原因:
獲得更好的系統性能
滿足不斷增加的業務需求
通過性能調優,可以用更少的硬體資源,支撐更大量的業務發展,從而達到節省硬體投資的目的。
同時,可以在資源有限,不能擴容的情況下,提升系統的響應能力,從而為用戶帶來更好的使用體驗。
性能調優三大系統
我們重點說一下在進行性能優化時,硬體、操作系統、應用程序這三大系統,需要關注的一些細節和具體的優化思路:
硬體優化。主要是對硬體選型,例如 CPU、內存、磁碟、網卡等。
操作系統優化。主要包含了操作系統的系統參數、內核參數、進程參數、文件系統、磁碟 IO 等。
應用程序優化。主要包含對應用軟體優化,例如:Apache、Nginx、Redis、MySQL、Keepalived、Kafka 等。下面展開介紹這三大系統優化。
硬體優化
在上線一個業務系統之前,首先需要進行硬體採購。硬體採購的標準是業務系統的運行特點和對資源的佔用情況。
舉例一:如果我們要上線一套 Redis 集群
Redis 是內存資料庫,特點是佔用內存會非常大。採購的時候要重點考慮的硬體資源就是內存,第一內存要大,第二內存資源要可擴展。
Redis 對磁碟讀、寫並不會很頻繁,同時,佔用的磁碟空間也不會太大。對磁碟的採購,可以不需要太大的磁碟空間,普通的 SAS 磁碟即可。
舉例二:如果我們要上線的是一套資料庫系統
資料庫系統的特點是比較耗費 CPU,也比較耗費內存,對數據安全性要求很高。
無論你使用的是 MySQL、SQL Server 還是 Oralce,都需要配置足夠快的 CPU,足夠大的內存,足夠穩定可靠的硬碟,同時硬碟需要做 RAID,RAID10 最好。
操作系統優化
操作系統介於硬體和應用之間,起到一個承上啟下的作用。
相關的系統參數設置關係到內存、IO 的調用機制、文件系統的使用效率、進程調度的優先順序。
下圖展示了 Linux 的內部結構以及與硬體的協助機制,非常重要。