工具 | 功能描述 |
uptime | 系統平均負載率 |
dmesg | 硬件/系統信息 |
top | 進程進行狀態 |
iostat | CPU和磁盤平均使用率 |
vmstat | 系統運行狀態 |
sar | 實時收集系統使用狀態 |
KDE System Guard | 圖形監控工具 |
free | 內存使用率 |
w | 查出誰登錄系統和他們正在做什麼 |
ps 和 kill |
顯示和殺死進程 |
netstat 和 ss | 網絡統計 |
iptraf | 網絡實時統計 |
tcpdump | 網絡流量詳細信息分析 |
/Proc 文件系統 cat | 多種內核信息的統計和查看 |
iftop | 流量監控 |
traffic-vis | 網絡監控(只有SUSE有) |
date 和 clock | 修改和查看系統的時間 |
pmap | 進程內存佔用率 |
strace | 追蹤程序運行狀態 |
ulimit | 系統資源使用限制 |
mpstat |
多處理器使用率 |
1、uptime
uptime命令用於查看服務器運行了多長時間以及有多少個用戶登錄,快速獲知服務器的負荷情況。
uptime的輸出包含一項內容是load average,顯示了最近1,5,15分鐘的負荷情況。它的值代表等待CPU處理的進程數,如果CPU沒有時間處理這些進程,load average值會升高;反之則會降低。
load average的最佳值是1,說明每個進程都可以馬上處理並且沒有CPU cycles被丟失。對於單CPU的機器,1或者2是可以接受的值;對於多路CPU的機器,load average值可能在8到10之間。
也可以使用uptime命令來判斷網絡性能。例如,某個網絡應用性能很低,通過運行uptime查看服務器的負荷是否很高,如果不是,那麼問題應該是網絡方面造成的。
以下是uptime的運行實例:
9:24am up 19:06, 1 user, load average: 0.00, 0.00, 0.00
也可以查看/proc/loadavg和/proc/uptime兩個文件,注意不能編輯/proc中的文件,要用cat等命令來查看,如:
liyawei:~ # cat /proc/loadavg
0.00 0.00 0.00 1/55 5505
2、dmesg
dmesg命令主要用來顯示內核信息。使用dmesg可以有效診斷機器硬件故障或者添加硬件出現的問題。
另外,使用dmesg可以確定您的服務器安裝了那些硬件。每次系統重啓,系統都會檢查所有硬件並將信息記錄下來。執行/bin/dmesg命令可以查看該記錄。
dmesg輸入實例:
ReiserFS: hda6: checking transaction log (hda6)
ReiserFS: hda6: Using r5 hash to sort names
Adding 1044184k swap on /dev/hda5. Priority:-1 extents:1 across:1044184k
parport_pc: VIA 686A/8231 detected
parport_pc: probing current configuration
3、top
top命令顯示處理器的活動狀況。缺省情況下,顯示佔用CPU最多的任務,並且每隔5秒鐘做一次刷新。
第一部分 -- 最上部的 系統信息欄 :
第一行(top):
“00:11:04”爲系統當前時刻;
“3:35”爲系統啓動後到現在的運作時間;
“2 users”爲當前登錄到系統的用戶,更確切的說是登錄到用戶的終端數 -- 同一個用戶同一時間對系統多個終端的連接將被視爲多個用戶連接到系統,這裏的用戶數也將表現爲終端的數目;
“load average”爲當前系統負載的平均值,後面的三個值分別爲1分鐘前、5分鐘前、15分鐘前進程的平均數,一般的可以認爲這個數值超過 CPU 數目時,CPU 將比較吃力的負載當前系統所包含的進程;
第二行(Tasks):
“59 total”爲當前系統進程總數;
“1 running”爲當前運行中的進程數;
“58 sleeping”爲當前處於等待狀態中的進程數;
“0 stoped”爲被停止的系統進程數;
“0 zombie”爲被複原的進程數;
第三行(Cpus):
分別表示了 CPU 當前的使用率;
第四行(Mem):
分別表示了內存總量、當前使用量、空閒內存量、以及緩衝使用中的內存量;
第五行(Swap):
表示類別同第四行(Mem),但此處反映着交換分區(Swap)的使用情況。通常,交換分區(Swap)被頻繁使用的情況,將被視作物理內存不足而造成的。
第二部分 -- 中間部分的內部命令提示欄:
top 運行中可以通過 top 的內部命令對進程的顯示方式進行控制。內部命令如下表:
s - 改變畫面更新頻率
l - 關閉或開啓第一部分第一行 top 信息的表示(字母l)
t - 關閉或開啓第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m - 關閉或開啓第一部分第四行 Mem 和 第五行 Swap 信息的表示
N - 以 PID 的大小的順序排列表示進程列表
P - 以 CPU 佔用率大小的順序排列進程列表
M - 以內存佔用率大小的順序排列進程列表
1 - 分別列出多核cpu的情況(數字1)
h - 顯示幫助
n - 設置在進程列表所顯示進程的數量
q - 退出 top
s - 改變畫面更新週期
第三部分 -- 最下部分的進程列表欄:
以 PID 區分的進程列表將根據所設定的畫面更新時間定期的更新。通過 top 內部命令可以控制此處的顯示方式。
4、iostat
iostat由Red Hat Enterprise Linux AS發佈。同時iostat也是Sysstat的一部分,可以下載到,網址是http://perso.wanadoo.fr/sebastien.godard/
執行iostat命令可以從系統啓動之後的CPU平均時間,類似於uptime。除此之外,iostat還對創建一個服務器磁盤子系統的活動報告。該報告包含兩部分:CPU使用情況和磁盤使用情況。
iostat顯示實例:
avg-cpu: %user %nice %system %iowait %steal %idle
0.16 0.01 0.03 0.10 0.00 99.71
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
hda 0.31 4.65 4.12 327796 290832
CPU佔用情況包括四塊內容
%user:顯示user level (applications)時,CPU的佔用情況。
%nice:顯示user level在nice priority時,CPU的佔用情況。
%sys:顯示system level (kernel)時,CPU的佔用情況。
%idle: 顯示CPU空閒時間所佔比例。
磁盤使用報告分成以下幾個部分:
Device: 塊設備的名字
tps: 該設備每秒I/O傳輸的次數。多個I/O請求可以組合爲一個,每個I/O請求傳輸的字節數不同,因此可以將多個I/O請求合併爲一個。
Blk_read/s, Blk_wrtn/s: 表示從該設備每秒讀寫的數據塊數量。塊的大小可以不同,如1024, 2048 或 4048字節,這取決於partition的大小。
例如,執行下列命令獲得設備/dev/sda1 的數據塊大小:
dumpe2fs -h /dev/sda1 |grep -F "Block size"
輸出結果如下
dumpe2fs 1.34 (25-Jul-2003)
Block size: 1024
Blk_read, Blk_wrtn: 指示自從系統啓動之後數據塊讀/寫的合計數。
也可以查看這幾個文件/proc/stat,/proc/partitions,/proc/diskstats的內容。
5、vmstat
vmstat提供了processes, memory, paging, block I/O, traps和CPU的活動狀況
procs -----------memory---------- ---swap-- -----io---- -system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 513072 52324 162404 0 0 0 28 275 51 0 0 97 3 0
0 0 0 513072 52324 162404 0 0 0 0 255 21 0 0 100 0 0
各輸出列的含義:
Process
– r: The number of processes waiting for runtime.
– b: The number of processes in uninterruptable sleep.
Memory
– swpd: The amount of virtual memory used (KB).
– free: The amount of idle memory (KB).
– buff: The amount of memory used as buffers (KB).
Swap
– si: Amount of memory swapped from the disk (KBps).
– so: Amount of memory swapped to the disk (KBps).
IO
– bi: Blocks sent to a block device (blocks/s).
– bo: Blocks received from a block device (blocks/s).
System
– in: The number of interrupts per second, including the clock.
– cs: The number of context switches per second.
CPU (these are percentages of total CPU time)
- us: Time spent running non-kernel code (user time, including nice time).
– sy: Time spent running kernel code (system time).
– id: Time spent idle. Prior to Linux 2.5.41, this included IO-wait time.
– wa: Time spent waiting for IO. Prior to Linux 2.5.41, this appeared as zero.
6、sar
sar是Red Hat Enterprise Linux AS發行的一個工具,同時也是Sysstat工具集的命令之一,可以從以下網址下載:http://perso.wanadoo.fr/sebastien.godard/
sar用於收集、報告或者保存系統活動信息。sar由三個應用組成:sar顯示數據、sar1和sar2用於收集和保存數據。
使用sar1和sar2,系統能夠配置成自動抓取信息和日誌,以備分析使用。配置舉例:在/etc/crontab中添加如下幾行內容
同樣的,你也可以在命令行方式下使用sar運行實時報告。如圖所示:
從收集的信息中,可以得到詳細的CPU使用情況(%user, %nice, %system, %idle)、內存頁面調度、網絡I/O、進程活動、塊設備活動、以及interrupts/second
#sar -u 3 10
Linux 2.6.16.21-0.8-default (liyawei) 05/31/07
10:17:16 CPU %user %nice %system %iowait %idle
10:17:31 all 0.00 0.00 0.00 0.00 100.00
10:17:34 all 0.00 0.00 0.00 0.00 100.00
查看網絡計數器,輸入:#sar -n DEV | more
從第24顯示網絡計數器:#sar -n DEV -f /var/log/sa/sa24 | more
你也能使用sar查看實時使用:#sar 4 5
輸出示例:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009
06:45:12 PM CPU %user %nice %system %iowait %steal %idle
06:45:32 PM all 3.53 0.00 0.25 0.03 0.00 96.19
Average: all 2.02 0.00 0.27 0.01 0.00 97.70
7、KDE System Guard
KDE System Guard (KSysguard) 是KDE圖形方式的任務管理和性能監視工具。監視本地及遠程客戶端/服務器架構體系的中的主機。
8、free
/bin/free命令顯示所有空閒的和使用的內存數量,包括swap。同時也包含內核使用的緩存。
total used free shared buffers cached
Mem: 776492 263480 513012 0 52332 162504
-/+ buffers/cache: 48644 727848
Swap: 1044184 0 1044184
9、w
w命令顯示關於目前聯機的用戶,和他們進程
10、ps 和 kill
ps命令顯示當前進程的快照。使用-A和-e選項選擇所有進程:
#ps -A 顯示長格式輸出
#ps -AI 打開另外完整模式(它會顯示命令行傳遞給進程參數)
#ps -AIF 參看線程(LWP和NLWP)
#ps -AIFH 查看進程中的線程
#ps -AILm 打印服務器上的所有進程
#ps ax
#ps axu
打印A進程樹
#ps -ejH
#ps axjf
#pstree
打印安全信息
#ps -eo euser,ruser,suser,fuse,f,comm,label
#ps axZ
#ps -eM
查看用戶ViveK運行的進程
#ps -U vivek -u vivek u
設置以用戶定義的格式輸出
#ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
#ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
#ps -eopid,tt,user,fname,tmout,f,wchan
只顯示Lighttpd的進程號
#ps -C lighttpd -o pid=
或
#pgrep lighttpd
或
#pgrep -u vivek php-cgi
顯示進程號爲55977的名稱
#ps -p 55977 -o comm=
查找最耗內存的10個進程
#ps -auxf | sort -nr -k 4 | head -10
查找最耗CPU的10個進程
#ps -auxf | sort -nr -k 3 | head -10
kill 用來殺死進程
殺死進程最安全的方法是單純使用kill命令,不加修飾符,不帶標誌。 首先使用ps -ef命令確定要殺死進程的PID,然後輸入以下命令:
# kill 進程號
註釋:標準的kill命令通常都能達到目的。終止有問題的進程,並把進程的資源釋放給系統。
如果進程啓動了子進程,只殺死父進程,子進程仍在運行,因此仍消耗資源。爲了防止這些所謂的“殭屍進程”,應確保在殺死父進程之前,先殺死其所有的子進程。
確定要殺死進程的PID或PPID
# ps -ef | grep httpd
以優雅的方式結束進程
# kill -l PID
-l選項告訴kill命令用好像啓動進程的用戶已註銷的方式結束進程。當使用該選項時,kill命令也試圖殺死所留下的子進程。但這個命令也不是總能成功--或許仍然需要先手工殺死子進程,然後再殺死父進程。
TERM信號
給父進程發送一個TERM信號,試圖殺死它和它的子進程。
# kill -TERM PPID
killall命令
killall命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。
# killall httpd
停止和重啓進程
有時候只想簡單的停止和重啓進程。如下:
# kill -HUP PID
該命令讓Linux和緩的執行進程關閉,然後立即重啓。在配置應用程序的時候,這個命令很方便,在對配置文件修改後需要重啓進程時就可以執行此命令。
絕殺 kill -9 PID
同樣的 kill -s SIGKILL
這個強大和危險的命令迫使進程在運行時突然終止,進程在結束後不能自我清理。危害是導致系統資源無法正常釋放,一般不推薦使用,除非其他辦法都無效。
當使用此命令時,一定要通過ps -ef確認沒有剩下任何殭屍進程。只能通過終止父進程來消除殭屍進程。如果殭屍進程被init收養,問題就比較嚴重了。殺死init進程意味着關閉系統。
如果系統中有殭屍進程,並且其父進程是init,而且殭屍進程佔用了大量的系統資源,那麼就需要在某個時候重啓機器以清除進程表了。
11、nestat和ss—網絡統計
netstat命令顯示連接數,路由表,接口統計,僞連接,和組播成員。
ss命令用於套接字統計。顯示的信息與netstat相類似。
ss:顯示Linux TCP/UDP網絡和套接字信息
使用netstat命令獲取關於特殊IP地址的詳細信息
12、iptraf—網絡實時統計
iptraf命令是交互式的多彩的IP局域網監控。
它是一個基於ncurses的IP局域網監控,產生各種網絡統計包括TCP信息,UDP計數,ICMP和OSPF信息,以太網負載,節點統計,IP校驗和錯誤,等等。它提供了以下信息易於閱讀格式:
通過TCP連接統計網絡流量
通過網絡接口統計IP衝突
通過協議統計網絡流量
通過TCP/UDP和包大小統計網絡流量
通過第二層地址統計網絡流量
13、tcpdump—網絡流量詳細信息分析
tcpdump是網絡上的流量轉發簡單命令。然而,使用這個工具,你需要很好地理解TCP/IP協議。舉個例子,顯示DNS流量信息,輸入:
#tcpdump -i eth1 'udp port 53'
比如,顯示所有從端口80進出的IPv4的HTTP包。打印不包含SYN和FIN,還有ACK-only的數據包,輸入:
#tcpdump 'tcp port 80 and (((ip[2:2]-((ip[0]&0xf)<<2))-((tcp[12]&0xf0)>>2))!=0)'
顯示所有到202.54.1.5的FTP會話,輸入:
#tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'
顯示所有到192.168.1.5的HTTP會話:
#tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'
使用wireshark查看文件的詳細信息,輸入:
#tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
14、/Proc 文件系統—多種內核統計
/proc文件系統提供了關於多種硬件設備的詳細信息和其他Linux內核信息。看看Linux內核/proc文檔獲取更多詳細信息。通用的/proc例子:
#cat /proc/cpuinfo
#cat /proc/meminfo
#cat /proc/zoneinfo
#cat /proc/mounts
15、iftop
1、前提條件安裝
# yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel
2、下載iftop源碼包
# wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.9.tar.gz
3、安裝iftop
# tar xvf iftop-0.9.tar.gz
# cd iftop-0.9
# make
# make install
4、使用
# /usr/local/iftop/sbin/iftop <可把此路徑寫進環境變量>
5、相關參數及說明
#/usr/local/iftop/sbin/iftop -i eth0 -n 查看eth0網卡的信息,若沒有參數是全部的顯示
<1、iftop界面相關說明
界面上面顯示的是類似刻度尺的刻度範圍,爲顯示流量圖形的長條作標尺用的。
中間的<= =>這兩個左右箭頭,表示的是流量的方向。
TX:發送流量
RX:接收流量
TOTAL:總流量
Cumm:運行iftop到目前時間的總流量
peak:流量峯值
rates:分別表示過去 2s 10s 40s 的平均流量
<2、iftop相關參數
常用的參數
-i 設定監測的網卡,如:# iftop -i eth1
-B 以bytes爲單位顯示流量(默認是bits),如:# iftop -B
-n 使host信息默認直接都顯示IP,如:# iftop -n
-N 使端口信息默認直接都顯示端口號,如: # iftop -N
-F 顯示特定網段的進出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),幫助,顯示參數信息
-p 使用這個參數後,中間的列表顯示的本地主機信息,出現了本機以外的IP信息;
-b 使流量圖形條默認就顯示;
-f 過濾計算包用的;
-P 使host信息及端口信息默認就都顯示;
-m 設置界面最上邊的刻度的最大值,刻度分五個大段顯示,例:# iftop -m 100M
進入iftop畫面後的一些操作命令(注意大小寫)
按 h 切換是否顯示幫助;
按 n 切換顯示本機的IP或主機名;
按 s 切換是否顯示本機的host信息;
按 d 切換是否顯示遠端目標主機的host信息;
按 t 切換顯示格式爲2行/1行/只顯示發送流量/只顯示接收流量;
按 N 切換顯示端口號或端口服務名稱;
按 S 切換是否顯示本機的端口信息;
按 D 切換是否顯示遠端目標主機的端口信息;
按 p 切換是否顯示端口信息;
按 P 切換暫停/繼續顯示;
按 b 切換是否顯示平均流量圖形條;
按 B 切換計算2秒或10秒或40秒內的平均流量;
按 T 切換是否顯示每個連接的總流量;
按 l 打開屏幕過濾功能,輸入要過濾的字符,比如ip,按回車後,屏幕就只顯示這個IP相關的流量信息;
按 L 切換顯示畫面上邊的刻度;刻度不同,流量圖形條會有變化;
按 j 或按 k 可以向上或向下滾動屏幕顯示的連接記錄;
按 1 或 2 或 3 可以根據右側顯示的三列流量數據進行排序;
按 < 根據左邊的本機名或IP排序;
按 > 根據遠端目標主機的主機名或IP排序;
按 o 切換是否固定只顯示當前的連接;
按 f 可以編輯過濾代碼,這是翻譯過來的說法,我還沒用過這個!
按 ! 可以使用shell命令
按 q 退出監控。
16、Traffic-vis
Traffic-vis是一套測定哪些主機在IP網進行通信、通信的目標主機以及傳輸的數據量。並輸出純文本、HTML或者GIF格式的報告。
注:Traffic-vis僅僅適用於SUSE LINUX ENTERPRISE SERVER。
如下命令用來收集網口eth0的信息:
traffic-collector -i eth0 -s /root/output_traffic-collector
可以使用killall命令來控制該進程。如果要將報告寫入磁盤,可使用如下命令:
killall -9 traffic-collector
要停止對信息的收集,執行如下命令:killall -9 traffic-collector
注意,不要忘記執行最後一條命令,否則會因爲內存佔用而影響性能。
可以根據packets, bytes, TCP連接數對輸出進行排序,根據每項的總數或者收/發的數量進行。
例如根據主機上packets的收/發數量排序,執行命令:
traffic-sort -i output_traffic-collector -o output_traffic-sort -Hp
如要生成HTML格式的報告,顯示傳輸的字節數,packets的記錄、全部TCP連接請求和網絡中每臺服務器的信息,請運行命令:
traffic-tohtml -i output_traffic-sort -o output_traffic-tohtml.html
如要生成GIF格式(600X600)的報告,請運行命令:
traffic-togif -i output_traffic-sort -o output_traffic-togif.gif -x 600 -y 600
GIF 格式的報告可以方便地發現網絡廣播,查看哪臺主機在TCP網絡中使用IPX/SPX協議並隔離網絡,需要記住的是,IPX是基於廣播包的協議。如果我們需 要查明例如網卡故障或重複IP的問題,需要使用特殊的工具。例如SUSE LINUX Enterprise Server自帶的Ethereal。
技巧和提示:使用管道,可以只需執行一條命令來產生報告。如生成HTML的報告,執行命令:
cat output_traffic-collector | traffic-sort -Hp | traffic-tohtml -o output_traffic-tohtml.html
如要生成GIF文件,執行命令:
cat output_traffic-collector | traffic-sort -Hp | traffic-togif -o output_traffic-togif.gif -x 600 -y 600
17、date 和 clock
#date -s “12:12:23 2006-10-10″ //這樣可以設置全部時間
#clock --systohc //將上面的修改寫入硬件時鐘
測試查看一下:
#date
#hwclock
=============================
一、時區
1. 查看當前時區
date -R
2. 修改設置時區
方法(1)
tzselect
方法(2) 僅限於RedHat Linux 和 CentOS系統
timeconfig
方法(3) 適用於Debian
dpkg-reconfigure tzdata
3. 複製相應的時區文件,替換CentOS系統時區文件;或者創建鏈接文件
cp /usr/share/zoneinfo/$主時區/$次時區 /etc/localtime
在中國可以使用:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
二、時間
1、查看時間和日期
date
2、設置時間和日期
將CentOS系統日期設定成1996年6月10日的命令
date -s 06/22/96
將CentOS系統時間設定成下午1點52分0秒的命令
date -s 13:52:00
3. 將當前時間和日期寫入BIOS,避免重啓後失效
hwclock -w
三、定時同步時間
# /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1
18、pmap
pmap可以報告某個或多個進程的內存使用情況。使用pmap判斷主機中哪個進程因佔用過多內存導致內存瓶頸。
pmap <pid>
# pmap 1
1: init
START SIZE RSS DIRTY PERM MAPPING
08048000 484K 244K 0K r-xp /sbin/init
080c1000 4K 4K 4K rw-p /sbin/init
080c2000 144K 24K 24K rw-p [heap]
bfb5b000 84K 12K 12K rw-p [stack]
ffffe000 4K 0K 0K ---p [vdso]
Total: 720K 284K 40K
232K writable-private, 488K readonly-private, and 0K shared
顯示進程號爲47394的內存信息,輸入:
#pmap -d 47394
輸出示例:
47394:/usr/bin/php-cgi
Address Kbytes Mode Offset Device Mapping
000000000400000 2584 r-x-- 0000000000000000 008:00002 php-cgi
.....
ffffffffff600000 8192 ----- 0000000000000000 000:00000 [ anon ]
mapped: 933712K writeable/private: 4304K shared: 768000K
最後一行非常重要:
mapped:933712K 映射到文件的內存總量
writeable/private:4304K 私有地址空間的數量
shared:768000K 這個進程與其它共享地址空間的數量
19、strace
strace截取和記錄系統進程調用,以及進程收到的信號。是一個非常有效的檢測、指導和調試工具。系統管理員可以通過該命令容易地解決程序問題。
使用該命令需要指明進程的ID(PID),例如:
strace -p <pid>
# strace –p 2582
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(7, "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\"..., 16384) = 321
write(3, "}H\331q\37\275$\271\t\311M\304$\317~)R9\330Oj\304\257\327"..., 360) = 360
select(8, [3 4 7], [3], NULL, NULL) = 2 (in [7], out [3])
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(7, "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\"..., 16384) = 323
write(3, "\204\303\27$\35\206\\\306VL\370\5R\200\226\2\320^\253\253"..., 360) = 360
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
20、ulimit
ulimit內置在bash shell中,用來提供對shell和進程可用資源的控制
liyawei:~ # ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 6143
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 6143
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
-H和-S選項指明所給資源的軟硬限制。如果超過了軟限制,系統管理員會收到警告信息。硬限制指在用戶收到超過文件句炳限制的錯誤信息之前,可以達到的最大值。
例如可以設置對文件句炳的硬限制:ulimit -Hn 4096
例如可以設置對文件句炳的軟限制:ulimit -Sn 1024
查看軟硬值,執行如下命令:
ulimit -Hn
ulimit -Sn
例如限制Oracle用戶. 在/etc/security/limits.conf輸入以下行:
soft nofile 4096
hard nofile 10240
對於Red Hat Enterprise Linux AS,確定文件/etc/pam.d/system-auth包含如下行
session required /lib/security/$ISA/pam_limits.so
對於SUSE LINUX Enterprise Server,確定文件/etc/pam.d/login 和/etc/pam.d/sshd包含如下行:
session required pam_limits.so
這一行使這些限制生效。
21、mpstat
mpstat是Sysstat工具集的一部分,下載地址是http://perso.wanadoo.fr/sebastien.godard/
mpstat用於報告多路CPU主機的每顆CPU活動情況,以及整個主機的CPU情況。
例如,下邊的命令可以隔2秒報告一次處理器的活動情況,執行3次
mpstat 2 3
# mpstat 2 3
Linux 2.6.16.21-0.8-default (liyawei) 05/31/07
10:23:03 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
10:23:09 all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 261.50
Average: all 0.17 0.00 0.00 0.67 0.00 0.00 0.00 99.17 264.73
如下命令每隔1秒顯示一次多路CPU主機的處理器活動情況,執行3次
mpstat -P ALL 1 3
# mpstat -P ALL 1 10
Linux 2.6.16.21-0.8-default (liyawei) 05/31/07
10:23:31 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
10:23:34 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 271.00
10:23:35 all 0.00 0.00 0.00 1.98 0.00 0.00 0.00 98.02 254.46
10:23:35 0 0.00 0.00 0.00 1.98 0.00 0.00 0.00
98.02 254.46