Solaris 性能基础
??????? 打算寫(xiě)下這些為本周部門(mén)交流做準(zhǔn)備,好好理順下自己對(duì)簡(jiǎn)單系統(tǒng)管理的認(rèn)識(shí),知識(shí)來(lái)源主要是是機(jī)械工業(yè)出版社的 《Solaris 性能與工具》。歡迎指點(diǎn)。?? 這里的測(cè)試都在sparc平臺(tái)下的solaris9之后的操作系統(tǒng)上,linux上對(duì)號(hào)入座是行不通的。
??????? 對(duì)于服務(wù)器而言,我們一般會(huì)關(guān)注cpu的個(gè)數(shù),主頻,負(fù)載情況。相關(guān)命令prtdiag? psrinfo cpustat mpstat vmstat .
?????? 查看硬件信息,可以用prtdiag,可以看到以下是信息
?????
bash-3.00# prtdiag System Configuration: Sun Microsystems sun4u Sun Fire V100 (UltraSPARC-IIe 500MHz) System clock frequency: 100 MHz Memory size: 768 Megabytes========================= CPUs =========================Run Ecache CPU CPU Brd CPU Module MHz MB Impl. Mask --- --- ------- ----- ------ ------ ----0 0 0 500 0.2 13 1.4========================= IO Cards =========================Bus# Freq Brd Type MHz Slot Name Model --- ---- ---- ---- -------------------------------- ----------------------0 PCI-0 33 0 dma-isadma0 PCI-0 33 0 rtc-m5819 m58190 PCI-0 33 0 power-acpi-power0 PCI-0 33 0 SUNW,lomh0 PCI-0 33 0 serial-su165500 PCI-0 33 0 serial-su165500 PCI-0 33 0 flashprom SUNW,258-78830 PCI-0 33 0 i2c-i2c-smbus0 PCI-0 33 0 ppm-SUNW,smbus-ppm0 PCI-0 33 0 beep-SUNW,smbus-beep0 PCI-0 33 0 fan-control-SUNW,smbus-fan-contr+?
可以看到內(nèi)存,cpu,以及接口等信息,這是一臺(tái)cpu主頻為500m Hz,內(nèi)存為768m的sparc機(jī)器,而那個(gè)100mHz是系統(tǒng)總線的頻率,更直白些,就是外頻。
如果要看cpu硬件信息,可以使用prsinfo 這一個(gè)命令,-p參數(shù)顯示cpu個(gè)數(shù),-v顯示內(nèi)核狀態(tài),-vp 顯示的是線程數(shù)
?因?yàn)閏pu是多核,每個(gè)核又有幾個(gè)線程,如果要查看核數(shù),請(qǐng)用下面命令:
-bash-3.00$?kstat?cpu_info|grep?core_id|uniq????????core_id?????????????????????????66
????????core_id?????????????????????????68
????????core_id?????????????????????????70
????????core_id?????????????????????????72
????????core_id?????????????????????????74
????????core_id?????????????????????????76
????????core_id?????????????????????????78
????????core_id?????????????????????????80?
?當(dāng)然,這些不是重點(diǎn),我們關(guān)注的是系統(tǒng)運(yùn)行時(shí)cpu的狀態(tài)。
1.vmstat(從命令行粘過(guò)來(lái)會(huì)列對(duì)齊錯(cuò)亂,就截了個(gè)圖)
??kthr(應(yīng)該是kerneral thread)中的三列 r b w ,分別代表運(yùn)行,阻塞,等待的線程數(shù),可以據(jù)此查看cpu飽和度(負(fù)載程度)。
?還有一個(gè)快速查看飽和度的命令
uptime:
bash-3.00# uptime2:26pm up 384 day(s), 22:04, 2 users, load average: 1.46, 1.47, 1.48 You have new mail in /var/mail/root?
?load average后面的數(shù)值代表了cpu在1分鐘,5分鐘,15分鐘的每個(gè)運(yùn)算周期的平均負(fù)載(即線程數(shù),),這個(gè)平均值對(duì)性能評(píng)估意義不大。無(wú)法檢測(cè)出峰值的負(fù)載。
sar (system activation report)命令,是一個(gè)非常好用的系統(tǒng)信息統(tǒng)計(jì)工具。其默認(rèn)是統(tǒng)計(jì)cpu信息的(-u)?
以下是示例
bash-3.00# sar 1 5SunOS xxxx 5.10 Generic_118833-33 sun4u 08/01/201214:47:08 %usr %sys %wio %idle 14:47:09 88 12 0 0 14:47:10 94 6 0 0 14:47:11 76 7 0 17 14:47:12 92 6 0 2 14:47:13 93 7 0 0Average 89 8 0 4一秒統(tǒng)計(jì)一次,計(jì)五次。關(guān)于sar 命令,是可以單獨(dú)寫(xiě)一篇文章的,看操作系統(tǒng)上的man手冊(cè)就可見(jiàn)一斑。查看單個(gè)cpu利用率的統(tǒng)計(jì)命令是mpstat,這里就不貼命令結(jié)果了。
? ? ? ? 以上所寫(xiě)的,是不能直接解決問(wèn)題的,我們只是看到了cpu的使用狀況,而不是誰(shuí)在用cpu。誰(shuí)在用cpu,用了多少,這是進(jìn)程和線程的事情了,這里需要介紹一個(gè)叫做prstat的命令。以下是默認(rèn)顯示的片段,包含pid,使用內(nèi)存大小和cpu使用百分比,默認(rèn)按照cpu使用百分比排序:
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP27235 root 3344K 3016K cpu0 59 0 0:00:00 0.3% prstat/1920 noaccess 163M 58M sleep 59 0 22:49:31 0.3% java/23956 dbadm 115M 42M sleep 59 0 14:13:33 0.2% java/37140 root 3928K 2024K sleep 59 0 0:44:02 0.0% nscd/3126621 sybase 8216K 2664K sleep 59 0 0:00:01 0.0% sshd/127789 root 2320K 1344K sleep 100 - 1:07:05 0.0% xntpd/1PID USERNAME 是進(jìn)程號(hào),用戶名
SIZE 和RSS是映射虛擬內(nèi)存大小和占用物理內(nèi)存
STATE 進(jìn)程狀態(tài)
PRI 優(yōu)先級(jí) 數(shù)字越大優(yōu)先級(jí)越高
TIME 累計(jì)使用cpu時(shí)間
PROCESS/NLWP 進(jìn)程名(執(zhí)行文件名)/線程數(shù)
?
prstat 可以對(duì)進(jìn)程(線程)進(jìn)行各種統(tǒng)計(jì)排序,
? ? ? ? ? ? ? ? 對(duì)線程進(jìn)行統(tǒng)計(jì),可以使用 -L參數(shù),
? ? ? ? ? ? ? ? 用按指定列排序 使用 -s + 列名 ?例如 prstat -s rss 就是按照使用物理內(nèi)存量排序
? ? ? ? ? ? ? ?按某uid使用資源總量 -t 針對(duì)一個(gè)用戶,列出資源 -U + uid?
? ? ? ? ? ? ? ?每一個(gè)zone使用的資源統(tǒng)計(jì) -Z
? ? ? ? ? ? ? ?列出用戶和進(jìn)程的相關(guān)信息,相當(dāng)于 prstat 后跟進(jìn)了一個(gè)prstat -t
以上是對(duì)cpu和進(jìn)程資源的使用情況進(jìn)行分析的命令,下面寫(xiě)下磁盤(pán)性能相關(guān)的的命令iostat,sar。對(duì)于磁盤(pán)我們一般關(guān)注的性能問(wèn)題是讀寫(xiě)速度,使用率(繁忙百分比)。使用iostat可以獲得磁盤(pán)性能信息,常見(jiàn)參數(shù)解釋:
-D 新風(fēng)格
-e 顯示設(shè)備錯(cuò)誤統(tǒng)計(jì)數(shù)據(jù)
-M 以MB/s為單位顯示吞吐
-n 使用磁盤(pán)邏輯名顯示,默認(rèn)實(shí)例名
-p 顯示每個(gè)分區(qū)和設(shè)備的和分區(qū)的統(tǒng)計(jì)數(shù)據(jù)
-P 只顯示分區(qū)統(tǒng)計(jì)信息
-x 擴(kuò)展磁盤(pán)統(tǒng)計(jì)數(shù)據(jù) ,條目更多。
-z 不顯示全部為0的行
-m 顯示掛載點(diǎn)(配合-p或者-P)
一個(gè)例子
bash-3.00#?iostat?-zxnpm????????????????????extended?device?statistics
????r/s????w/s???kr/s???kw/s?wait?actv?wsvc_t?asvc_t??%w??%b?device
????0.0????0.7????0.5????5.6??0.0??0.0????0.7????0.7???0???0?c0t0d0
????0.0????0.0????0.0????0.0??0.0??0.0????0.9????0.7???0???0?c0t0d0s0?(/)
????0.0????0.0????0.0????0.0??0.0??0.0???14.8???15.4???0???0?c0t0d0s1?(/usr/openwin)
????0.0????0.2????0.0????0.4??0.0??0.0????0.1????0.3???0???0?c0t0d0s3?(/var)
????0.0????0.0????0.0????0.0??0.0??0.0????5.0???10.7???0???0?c0t0d0s4
????0.0????0.5????0.5????5.1??0.0??0.0????0.7????0.8???0???0?c0t0d0s5?(/opt)
????0.0????0.0????0.0????0.0??0.0??0.0????3.0????2.0???0???0?c0t0d0s6?(/usr)
????0.0????0.0????0.0????0.0??0.0??0.0????2.2????2.9???0???0?c0t0d0s7?(/export/home)
?kr/s 讀速率 kw/s 寫(xiě)速率 ?%w 等待百分比 %b 忙百分比 wait 等待的平均數(shù)量 actv被響應(yīng)事物數(shù)量 wsvc_t平均等待時(shí)間 asvc_t平均運(yùn)行時(shí)間
。更多的內(nèi)容,可以man。
? ?對(duì)于那些進(jìn)程占用比較多的cpu,內(nèi)存,都有命令可以找出。對(duì)io呢,如何找出正在大量占用磁盤(pán)的進(jìn)程呢?這里有三個(gè)個(gè)很實(shí)用的腳本iotop(
和iosnoop,psio(http://www.brendangregg.com/psio.html) 。 其中iotop和iosnoop只能在s10及以后版本使用,因?yàn)槭褂胐trace了。
?
不是每個(gè)用戶都有權(quán)限使用dtrace的,如果不是root,又想使用dtrace,請(qǐng)參照
http://www.solarisinternals.com/wiki/index.php/DTrace_Topics_Guide以??以下是增加權(quán)限過(guò)程:
?
?
As?user1,$?id
uid=1001(user1)?gid=1(other)
$?ppriv?$$
214885:?-sh
flags?=?<none>
????????E:?basic
????????I:?basic
????????P:?basic
????????L:?all
$?exit
As?root,
#?grep?user1?/etc/user_attr?
#?usermod?-K?defaultpriv=basic,dtrace_user,dtrace_proc?user1
#?grep?user1?/etc/user_attr
user1::::type=normal;defaultpriv=basic,dtrace_user,dtrace_proc
#?su?-?user1
$?ppriv?$$
285007:?-sh
flags?=?<none>
????????E:?basic,dtrace_proc,dtrace_user
????????I:?basic,dtrace_proc,dtrace_user
????????P:?basic,dtrace_proc,dtrace_user
????????L:?all
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??????
轉(zhuǎn)載于:https://www.cnblogs.com/doita/archive/2012/08/03/2617234.html
總結(jié)
以上是生活随笔為你收集整理的Solaris 性能基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java学习之日期学习
- 下一篇: android 去锯齿