歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Solaris性能優化經驗總結

在Solaris 的維護中,經常出現的是系統性能維護上的問題,影響系統性能的因素有很多,我們將從對系統的平均負荷、進程監視、CPU、I/O 及內存管理、網絡流量診斷等方面
進行了分析闡述,給出了在Solaris 性能維護上的一些方法和經驗。
系統的性能是指該系統完成任務的情況,它的有效性、穩定性和響應速率。系統管理員
們常常抱怨系統性能不好、不穩定、系統響應速度太慢等等,所有這類問題僅僅是一些表面現象。整個網絡系統的性能的好壞是與網絡拓樸結構,服務器系統、路由設備、路由政策、接入設備、物理線路等多個方面密切相關的,任何一個環節出現問題,都會影響整個系統的性能。在優化整個系統性能之前,必須監視、審計每一個環節中系統資源是否合理的使用和分配。服務器和工作站系統性能好壞主要取決於它怎樣合理使用和分配它的資源,定期監視、審計系統的性能是非常重要的,而且應該知道要監視系統哪些資源。系統資源包括3個方面:
----1、CPU;
----2、內存子系統;
----3、I/O 子系統。
這3個方面,不論那一方面存在問題都會對系統性能產生影響,而審計系統性能也是從這3方面入手。審計系統性能的工具很多,在Solaris 操作系統中提供了多種用來審計系統資源運行情況的工具,主要包括:
The uptime and sar commands, 用來報告系統的平均負荷;
The ps command, 提供系統中正在運行進程的相關信息;
The df command, 提供有關磁盤使用方面的信息;
The vmstat 、iostat and sar commands, 報告系統活動情況,提供內存使用的相關信息、I/O
系統信息、CPU 活動等;
The swap command, 用來統計系統中swap 使用情況;
The netstat command ,用來顯示有關網絡性能方面的信息。
值得注意的是,對於服務器/工作站系統,由於用戶量的不斷增加,系統資源的使用和分配可能在一段時間內較為合理,一段時間之後,系統資源可能處於超負荷運行狀態,所以說,系統性能管理是一項長期的工作,應將系統性能管理作為日常系統管理工作的一部分,來維護系統可靠、高效運行。
在對系統進行性能優化之前,必須知道系統的硬件資源配置、軟件資源的使用及整個系統配置是否存在問題。這些問題的發現往往建立在系統給人們的印象上。比如:系統對用戶的響應速率慢,進程運行需花更多的時間等等。如果發現了這些現象,就應該采集系統主要資源數據並進行分析,找到提高系統性能的方法。

系統性能分析的標准工具:
CPU: vmstat sar ps
內存:vmstat ps
磁盤:iostat vmstat
網絡:netstat nfsstat
性能調優一般步驟注:此處應該為一般標准:
性能調優的主要目的是使系統能夠有效的利用各種資源,但衡量系統資源利用率好壞的標准
是什麼,針對不同的系統和應用沒有嚴格的定義,一般參照以下條件來判定主要資源使用狀況:

好 壞 糟糕
CPU : user% + sys%< 70% user% + sys%= 85% user% + sys% >=90%
磁盤: iowait % < 30% iowait % =40% iowait % >= 50%
內存:No Page In & Page Out Per CPU with 10 page/s More Page In & Page Out
網絡: < 30% Bandwidth
通過以下步驟,發現影響整體性能的關鍵資源,進行性能優化,必要時需要添加或升級某種
硬件設備。
1.用iostat、sar 檢測是否是CPU 原因
2.用vmstat、svmon 檢測是否是內存原因
3.用filemon、iostat 檢測是否是硬盤原因
4.用netstat 、nfsstat 檢測是否是網絡原因

一、系統的平均負荷
系統在不同時間內的平均負荷(Last mimute 、Last 5 minutes 、Last 15 minutes)是用來
評估系統是否超負荷運行較方便、較常用的一種方法。系統在正常運行的情況下,3 個值的
范圍應在0-2 。對於Solaris 操作系統,可以用下面幾條命令獲取系統平均負荷(以主機
solarisEXP 為例):

----1. uptime
solarisEXP% uptime
2:06 下午運行1 天5:27,7 users, 平均負荷:0.00,0.01,0.01
----2 、sar (system activity reporter) 命令本身能用於采集系統活動數據或從sadc 建立的每
日活動文件中提取系統活動數據。
solarisEXP% sar –q(從文件中取數據)
00:00:01 runq-sz %runocc swpq-sz %swpocc
01:00:01 1.0 0
02:00:01 1.8 0
03:00:01 1.3 0
04:00:01 1.8 0
05:00:01 2.0 0
Average 1.6 0

----或使用:“sar –options t n ”從當前開始,在t 秒(t>=5)時間間隔內,采集n 次系統活動數據。
----runq-sz 正常情況下它應小於2。如果此值連續大於2 表明系統可能處於CPU-bound 狀態。
如果%runocc 大於90,並且runq-sz 大於2,表明CPU 處於超負荷狀態,系統響應速率下降。
例:
sar -u 顯示項的含義(檢查CPU 的使用率)
%usr cpu 執行用戶進程的時間
%sys cpu 執行系統進程的時間
%wio cpu 等待完成I/O 的時間
%idel cpu 的空閒時間
顯示結果分析說明
一般情況下%usr 和%sys 的值基本相等
在一般的多用戶系統中,%idel 的值通常大於40%
若 %wio 經常>15%意味著硬盤可能存在著瓶頸
若%idel 經常小於30%,意味著處理器的處理能力較弱
若%idel 經常小於10%,表明處理器負擔較重,或者存在逃逸進程。
若%idel接近於0,而且%sys 遠高於%usr,則可能是內存短缺引起了大量的swaping 和paging
sar -p 檢查系統中是否有較多的等待進程
Sar -p :檢查系統中是否有過多的等待進程
此命令有四個相關字段:
runq-sz :內存(memory)中可以運行的進程數
%runocc:進程進入內存等待的概率
swpq-sz :對換區(swap )中等待運行的進程數
%swpocc:進程進入swap 等待的概率
顯示結果分析匯總如下:
1) 若runq-sz 經常大於2 並且%runocc 經常大於90%,意味著處理器負載過重
2) 若%swpocc 不為0,表示系統已經置換出了進程。可以采用增加內存或減少緩沖的方法來減少swap 和paging。

Copyright © Linux教程網 All Rights Reserved