查看UNIX服務器CPU個數等硬件信息


一、如何查看服務器的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個數:

  1. [root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l

②每個物理cpu中core的個數(即核數)

  1. [root@localhost ~]# cat /proc/cpuinfo | grep "cpu cores" | uniq cpu cores : 4

這樣可以推算出自己服務器的邏輯CPU爲物理個數*核數,如果你的服務器是server2003,你可以在你的資源管理器裏以圖形化方式看到你的邏輯CPU個數。


  1. /proc/cpuinfo 描述中有 6 個條目適用於多內核和超線程(HT)技術檢查:processor, vendor id, physical id, siblings, core id 和 cpu cores。
  2. * processor 條目包括這一邏輯處理器的唯一標識符。
  3. * physical id 條目包括每個物理封裝的唯一標識符。
  4. * core id 條目保存每個內核的唯一標識符。
  5. * siblings 條目列出了位於相同物理封裝中的邏輯處理器的數量。
  6. * cpu cores 條目包含位於相同物理封裝中的內核數量。
  7. * 如果處理器爲英特爾處理器,則 vendor id 條目中的字符串是 GenuineIntel。



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

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

  1. [root@server ~]# free -m
  2. total used free shared buffers cached
  3. Mem: 249 163 86 0 10 94
  4. -/+ buffers/cache: 58 191
  5. Swap: 511 0 511

參數解釋:

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

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

Linux服務器內存解釋



三、服務器磁盤使用情況

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

①查看硬盤分區情況

  1. fdisk –l

②查看當前硬盤使用情況

  1. df –h

③查看硬盤性能

  1. # iostat -x 1 10
  2. Linux 2.6.18-92.el5xen 03/01/2010
  3. avg-cpu: %user %nice %system %iowait %steal %idle
  4. 1.10 0.00 4.82 39.54 0.07 54.46
  5. Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
  6. sda 0.00 3.50 0.40 2.50 5.60 48.00 18.48 0.00 0.97 0.97 0.28
  7. sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
  8. sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
  9. sdd 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
  10. sde 0.00 0.10 0.30 0.20 2.40 2.40 9.60 0.00 1.60 1.60 0.08
  11. sdf 17.40 0.50 102.00 0.20 12095.20 5.60 118.40 0.70 6.81 2.09 21.36
  12. 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等軟件做準備。

  1. uname –a



五、查看服務器使用的Linux發行版的名稱、版本號及描述信息等

  1. lsb_release -a

這是我的某臺用於SVN實驗的vmware機器情況:

機器情況


六、查看服務器的平均負載

感覺到系統壓力較大時用可top或uptime查看下服務器的平均負載。uptime的另一個用法是查看你的Linux服務器已經穩定運行多少天沒有重啓了,我這邊的機器最高記錄是360多天。


七、查看系統整體性能情況

如果感覺系統比較繁忙,可以用vmstat查看系統整體性能情況。vmstat不僅僅適應於linux系統,它一樣適用於FreeBSD等unix系統。

  1. vmstat 1 2

如果 r經常大於 4 ,且id經常少於40,表示cpu的負荷很重。

如果pi,po 長期不等於0,表示內存不足。

如果disk 經常不等於0, 且在 b中的隊列 大於3, 表示 io性能不好。


八、查看系統已載入的相關模塊

Linux操作系統的核心具有模塊化的特性,應此在編譯核心時,務須把全部的功能都放入核心。你可以將這些功能編譯成一個個單獨的模塊,待需要時再分別載入。比如說在安裝LVS+Keepalived,下列用法被經常用到:

#檢查內核模塊,看一下ip_vs是否被加載
  1. lsmod |grep ip_vs ip_vs 77313 0

如果要查看當前系統的已加載模塊,直接lsmod。


九、Linux下查找PCI設置

有時需要在Linux下查找PCI設置,可用lspci命令,它可以列出機器中的PCI 設備,比如聲卡、顯卡、Modem、網卡等,主板集成設備也能列出來。lspci 讀取的是hwdata 數據庫。有的小夥可能和我一樣,最關心的還是網卡型號:

  1. [root@mail ~]# lspci | grep Ethernet
  2. 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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章