2010年7月5日

明明白白你的Linux服務器——硬件篇

本文轉自51cto.com, 灰常感謝原作者的辛勤勞動。
----------下面為原文-----------
寫這篇文章的目的,是因為我經常要到客戶的機房或託管的IDC去從事相關系統工作,少則十幾台,多則上百,通過下面的內容,你應該能很清楚 你目前的 Linux服務器的狀態性能等信息。

一、如何查看服務器的CPU

今天安裝了9台Linux服務器,型號完全不一樣(有DELL、HP和IBM服務器),又懶得去對清單,如何 在Linux下cpu的個數和核數呢? 另外,nginx的cpu工作模式也需要確切的知道linux服務器到底有多少個邏輯cpu,不過現在服務器那是相當的彪悍,直接上 worker_processes 8吧。


判斷依據:

1.具有相同core id的cpu是同一個core的超線程。(Physical id and core id are not necessarily consecutive but they are unique. Any cpu with the same core id are hyperthreads in the same core.)

2.具有相同physical id的cpu是同一顆cpu封裝的線程或者cores。(Any cpu with the same physical id are threads or cores in the same physical socket.)
以自己的惠普DL380G6為例說明:

①物理cpu個數:

[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l2
 
②每個物理cpu中core的個數(即核數)


[root@localhost ~]# cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores : 4
 
這樣可以推算出自己服務器的邏輯CPU為物理個數*核數,如果你的服務器是server2003,你可以在你 的資源管理器裡以圖形化方式看到你的邏 輯CPU個數。

二、查看服務器的內存情況

有時候,你運行了許多大的進程,比如你開啟了300個fast-cgi。這時候你感覺系統很慢,便需要查看服 務器的內存情況:

[root@server ~]# free -m
total used free shared buffers cached
Mem: 249 163 86 0 10 94
-/+ buffers/cache: 58 191
Swap: 511 0 511
 
參數解釋:

total 內存總數
used 已經使用的內存數
free 空閒的內存數
shared 多個進程共享的內存總額
buffers Buffer Cache和cached Page Cache 磁盤緩存的大小
-buffers/cache (已用)的內存數:used - buffers - cached
+buffers/cache(可用)的內存數:free + buffers + cached
可用的memory=free memory+buffers+cached

上面的數值是一台我公司內網供PHP開發人員使用的DELL   PE2850,內存為2G的服務器,
其可使用內存為=217+515+826。記住,Linux的內存使用管理機制是有多少就用多少
(特別是在頻繁存取文  件後),即Linux內存不是拿來看的,是拿來用的。 
 
Linux服务器内存解释

 三、服務器磁盤使用情況

有時感覺硬盤反映很慢,或需要查看日誌所在分區時,下列命令可以查看磁盤的使用情況,
很有用:

 ①查看硬盤分區情況




fdisk –l
②查看當前硬盤使用情況
df –h
③查看硬盤性能
# iostat -x 1 10
Linux 2.6.18-92.el5xen 03/01/2010
avg-cpu:   %user %nice %system %iowait   %steal %idle
1.10 0.00 4.82 39.54 0.07 54.46 
 
Device:       rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await   svctm   %util
sda          0.00     3.50   0.40   2.50     5.60     48.00   18.48     0.00 0.97 0.97 0.28
sdb          0.00     0.00   0.00   0.00     0.00     0.00     0.00     0.00 0.00 0.00 0.00
sdc          0.00     0.00   0.00   0.00     0.00     0.00     0.00     0.00 0.00 0.00 0.00
sdd          0.00     0.00   0.00   0.00     0.00     0.00     0.00     0.00 0.00 0.00 0.00
sde          0.00     0.10   0.30   0.20     2.40     2.40     9.60     0.00 1.60 1.60 0.08
sdf          17.40     0.50 102.00   0.20 12095.20    5.60   118.40     0.70 6.81 2.09  21.36
sdg          232.40    1.90 379.70   0.50 76451.20   19.20   201.13     4.94 13.78 2.45 93.16
 
像我們公司,開發人員佔多數。有時為了節約成本,會同時採購一些性價比比較高的二手服務 器;這時一般將服務器 的硬件的工作模式設置為RAID1,同 時對幾種型號的服務器作相同文件 的寫操作,然後各自執行iostat –d,作對比性測試。這樣服務器的硬盤性能孰優孰劣,一下子 就能對比出來。 Linux服务器磁盘信息 圖解: Tps 該設備每秒I/O傳輸的次數(每秒的I/O請求)  Blk_read/s 表求從該設備每秒讀的數據塊數量 Blk_wrth/s 表示從該設備每秒寫的數據塊數量   四、查看系統內核 查看系統內核主要為了掌握其版本號,為安裝LVS等軟件做準備。
uname –a
 
五、查看服務器使用的Linux發行版的名稱、版本號及描述信息等
lsb_release -a
 
這是我的某台用於SVN實驗的vmware機器情況: 机器情况   六、查看服務器的平均負載 感覺到系統壓力較大時用可top或uptime查看下服務器的平均負載。uptime的另一個用法是 查看你的 Linux服務器已經穩定運行多少天沒 有重啟了,我這邊的機器最高記錄是360多天。 七、查看系統整體性能情況 如果感覺系統比較繁忙,可以用vmstat查看系統整體性能情況。vmstat不僅僅適應於linux 系統, 它一樣適用於FreeBSD等unix 系統。
vmstat 1 2
 
如果 r經常大於 4 ,且id經常少於40,表示cpu的負荷很重。 如果pi,po 長期不等於0,表示內存不足。 如果disk 經常不等於0, 且在 b中的隊列 大於3, 表示 io性能不好。 八、查看系統已載入的相關模塊 Linux操作系統的核心具有模塊化的特性,應此在編譯核心時,務須把全部的功能都放入核心。 你可以將這些功 能編譯成一個個單獨的模塊,待需要時再 分別載入。例如以下用法查看是否 被正確加載:
lsmod | grep NTFS
 
如果要查看當前系統的已加載模塊,直接lsmod 九、Linux下查找PCI設置 有時需要在Linux下查找PCI設置,可用lspci命令,它可以列出機器中的PCI 設備,比如聲卡、 顯卡、Modem、網卡等,主板集成設備也能列出來。lspci 讀取的是hwdata 數據庫。有的 小夥可能和我一樣,最關心的還是網卡型號:
[root@mail ~]# lspci | grep Ethernet 
03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
07:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
 
掌握上面這九條,你對你的Linux服務器的硬件信息基本就可以隨時掌控了。

沒有留言:

發佈留言