- 走入IBM小型機世界
- Orian編著
- 1345字
- 2018-12-28 23:12:16
2.6 性能優化的概念
性能優化是一個技術含量非常高的話題,對于初次接觸AIX的朋友,還難以掌握此技術,但我們可以先了解一下如何發現性能問題,以及性能問題的產生原因。發現性能問題需要對系統了如指掌,最重要的一個概念是拿數據而不是拿感覺說話。復雜系統的性能優化需要經過如下步驟:
(1)簡要查看系統,確定性能優化方向,制定數據收集方案;
(2)通過數據收集全部端到端數據及盡可能多的中間數據。由于很多數據收集過程會對原有系統造成干擾,因此中間數據的收集可能會根據系統優化的進程逐步深入;
(3)分析數據,判斷瓶頸點,收集重點數據;
(4)根據數據資料制訂優化方案和實施步驟及回退方案;
(5)實施優化方案,注意比較實施前后性能數據差異;
(6)反復實施從2~5的過程,直到系統實現滿意的性能指標或者已經無法再提高。
對于簡單的系統,就沒有必要以這么刻板地順序執行以上步驟了,此時工具、經驗是最重要的優化手段。常用的工具包括AIX操作系統提供的:vmstat,iostat,lvmstat,topas。通常優化的順序是先看CPU是否繁忙,再看內存,然后是磁盤和網絡(IO)。優化的方法如下:
● 檢查是否有故障
不要急于去進行優化,特別是系統性能忽然下降,大部分原因都是由于系統故障,將故障解決掉,性能問題也隨之解決了。比較常見的有RAID磁盤組中出現壞盤,某顆CPU故障被系統自動關閉等。
● 打開限制
這是最容易實現的優化方式,不過除非是沒有經過很好地設計和實施的系統,這種好事情很難碰到。最常見的限制在/etc/security/limits文件對于打開文件數、程序使用堆棧段等限制,可以簡單地改為-1變成無限(如果是系統進程,需要重新啟動才生效)。
● 降低使用需求
遇到性能問題的最簡單解決辦法是別這么“瘋狂”地用系統!為什么要同時處理這么多的數據?能不能把時間分散開?只要系統使用量降下來,性能自然好。有很多應用程序在編寫的時候風格不好,不注意對資源釋放,或者有大量的死循環,這一類程序會很快消耗掉系統的CPU資源,如果我們并不是非常迫切地要求計算結果,可以適當限制這些程序對CPU的占用,這樣可以釋放出一些計算資源用于處理其他的事務。這種情況在一臺計算機同時運行多種業務的時候比較常見,例如數據庫既有OLTP(在線交易,需要及時響應),又有BI(數據挖掘,報表、統計,需要大量計算)兩種應用同時工作。此時就需要按照優先級,例如限制報表統計時間,將其調度到夜晚執行。如果是OLAP(在線數據分析),業務要求即時計算,可以考慮通過限制并行操作數量、設定優先級別、預先計算等方式規避瞬間業務高峰。
● 平衡,分散需求
小型機的性能指標都是按照最佳負載平衡的情況下測算的,如果你發現系統沒有達到理論值,并且相差很遠,那么下面要做的優化工作就是能夠盡量平衡系統對資源的使用,充分發揮設備的處理能力。馬車的速度不是由跑得最快的馬決定的,而是由最慢的馬決定的。
● 轉移需求
當仍然無法達到要求的時候,先要看看系統是否還有繼續優化的余地,優化是為了挖掘系統的剩余能力,并不能提高系統的設計最大能力,但在另一種情況下,可能需要與平衡策略相悖,反其道而行之,不是讓系統使用更為平衡,而是讓系統更加極端化,這通常是在應用程序本身就不是均衡使用系統資源(通常應用程序都是如此)的時候采用的辦法。例如,如果有大量磁盤IO,可以用剩余的內存設置虛擬磁盤替代物理磁盤,將IO需求轉化為內存需求。
- 大數據戰爭:人工智能時代不能不說的事
- 網上沖浪
- 自動控制原理
- 教父母學會上網
- 精通特征工程
- OpenStack Cloud Computing Cookbook(Second Edition)
- 網絡化分布式系統預測控制
- MATLAB/Simulink權威指南:開發環境、程序設計、系統仿真與案例實戰
- LMMS:A Complete Guide to Dance Music Production Beginner's Guide
- ZigBee無線通信技術應用開發
- Serverless Design Patterns and Best Practices
- Mastering SQL Server 2014 Data Mining
- 系統建模與控制導論
- Building Smart Drones with ESP8266 and Arduino
- CAD應用程序開發詳解