判斷Linux服務器CPU情況的依據如下:
- 具有相同的core id的CPU是同一個core的超線程。(Any cpu with the same core id are hyper-threads in the same core);
- 具有相同的physical id的CPU是同一個CPU封裝的線程或核心。(Any cpu with the same physical id are threads or cores in the same physical socket);
物理CPU個數如下所示:
[bppf_inf@devapp001 ~]$ cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
4
每個物理CPU中core的個數(即核數)如下所示:
[bppf_inf@devapp001 ~]$ cat /proc/cpuinfo | grep "cpu cores" | uniq
cpu cores : 4
邏輯CPU的個數如下所示:
[bppf_inf@devapp001 ~]$ cat /proc/cpuinfo | grep "processor" | wc -l
16
查看Linux服務器的內存使用情況,命令如下:
[bppf_inf@devapp001 ~]$ free -m
total used free shared buffers cached
Mem: 16050 15448 602 0 382 3190
-/+ buffers/cache: 11875 4175
Swap: 8001 18 7982
- total:內存總數
- used:已經使用的內存數
- free:空閒的內存數
- shared:多個進程共享的內存總額
- -buffers/cache:(已用)的內存數,即used-buffers-cached
- +buffers/cache:(可用)的內存數,即free+buffers+cached
查看Linux系統的平均負載
- 平均負載的概念:有時候我們會覺得系統響應很慢,但是又找不到原因,這時就要查平均負載了,看它是否有大量的進程在排隊等。特定時間間隔內運行隊列的平均進程數可以反映系統的繁忙程度,所以我們通常會在自己的網站或系統變慢時第一時間查系統的負載,即CPU的平均負載。
- 查看平均負載:最簡單的命令是uptime,如下所示:
[bppf_inf@devapp001 ~]$ uptime
10:46:38 up 6 days, 21:02, 24 users, load average: 1.13, 0.92, 0.47 - 還可以用w命令來查看,如下所示:[bppf_inf@devapp001 ~]$ w
10:52:44 up 6 days, 21:09, 25 users, load average: 1.02, 0.99, 0.64
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
bppf_eas pts/0 192.168.95.218 Tue19 14:57m 0.03s 0.03s -bash
root :0 - 23Apr14 ?xdm? 1:45m 0.08s /usr/bin/gnome-session
root pts/1 :0.0 23Apr14 6days 0.01s 0.01s bash
bppf_fas pts/2 192.168.95.218 Tue16 12:06 0.18s 0.00s sshd: bppf_fas [priv]
dxposp pts/3 192.168.83.5 10:19 1:54 0.05s 0.01s view posTunnelSvr-7331-20140430-0001.log
bppf_inf pts/4 192.168.95.148 Tue17 0.00s 0.04s 0.00s sshd: bppf_inf [priv]
bppf_inf pts/5 192.168.95.163 08:45 2:02m 0.07s 0.00s ./redis-cli -p 8123
bppf_eas pts/6 192.168.95.152 Tue13 17:15m 0.05s 0.00s sshd: bppf_eas [priv]
bppf_eas pts/7 192.168.95.152 Tue09 19:40m 0.09s 0.00s sshd: bppf_eas [priv]
- 還有動態命令top,這個命令可以反映系統負載情況,系統會動態地顯示內容;
查看Linux系統的其他參數
- 用vmstat監控Linux系統的整體性能,vmstat是一個相當全面的性能分析工具,可以觀察到系統的進程狀態、內存使用情況、虛擬內存的使用情況、磁盤的I/O、上下文切換、CPU的使用情況等性能信息,建議熟練掌握此命令,如下所示:[bppf_inf@devapp001 ~]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 19240 236516 470084 3537760 0 0 1 6 4 3 0 0 100 0 0
如果r(等待運行的進程數)經常大於系統的邏輯CPU個數,且id(閒置時間)經常少於50,則表示CPU的負荷很重。
查看系統內核
- 查看系統內核主要是爲了掌握其版本號,爲安裝LVS等軟件做準備,可以用命令uname -a來查看,如下所示:[bppf_inf@devapp001 ~]$ uname -a
Linux devapp001 2.6.18-308.el5 #1 SMP Fri Jan 27 17:17:51 EST 2012 x86_64 x86_64 x86_64 GNU/Linux - 如果要查看系統是32位還是64位,可以用如下命令:[bppf_inf@devapp001 ~]$ ls -lF / | grep /$
drwxr-xr-x 2 root root 4096 11-26 12:26 bin/
drwxr-xr-x 4 root root 4096 11-26 11:03 boot/
drwxr-xr-x 14 root root 3900 04-23 13:47 dev/
drwxr-xr-x 106 root root 12288 04-30 04:04 etc/
drwxr-xr-x 13 root root 4096 04-15 14:19 home/
drwxr-xr-x 11 root root 4096 12-19 16:27 lib/
drwxr-xr-x 8 root root 12288 11-26 12:25 lib64/
drwx------ 2 root root 16384 11-26 10:54 lost+found/
drwxr-xr-x 2 root root 4096 04-23 13:45 media/
drwxr-xr-x 2 root root 0 04-23 13:45 misc/
drwxr-xr-x 2 root root 4096 2009-10-01 mnt/
drwxr-xr-x 2 root root 0 04-23 13:45 net/
drwxrwxrwx 10 root root 4096 04-25 09:22 opt/
drwxr-xr-x 6 oracle oinstall 4096 11-26 11:49 oracle/
drwxrwx--- 5 oracle oinstall 4096 11-26 11:49 oraInventory/
dr-xr-xr-x 840 root root 0 04-23 13:43 proc/
drwxr-x--- 22 root root 4096 04-23 13:45 root/
drwxr-xr-x 2 root root 12288 11-26 12:26 sbin/
drwxr-xr-x 2 root root 4096 11-26 10:56 selinux/
drwxr-xr-x 2 root root 4096 2009-10-01 srv/
drwxr-xr-x 11 root root 0 04-23 13:43 sys/
drwxr-xr-x 3 root root 4096 11-26 11:03 tftpboot/
drwxrwxrwt 24 root root 12288 04-30 11:16 tmp/
drwxr-xr-x 14 root root 4096 01-14 15:57 u1/
drwxr-xr-x 15 root root 4096 11-26 11:00 usr/
drwxr-xr-x 25 root root 4096 11-26 11:05 var/
此命令會查找是否有/lib64的目錄,有則系統爲64位,無則表示系統爲32位。
- 另一種常見方法是通過file命令來判斷系統中的文件是32位還是64位的,以此作爲判斷系統的依據,如下所示:[bppf_inf@devapp001 ~]$ file /sbin/init
/sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), stripped
修改主機名查詢靜態表/etc/hosts
Linun主機名的相關配置文件就是/etc/hosts,這個文件告訴本機哪些域名對應哪些IP,哪些主機名對應哪些IP。一般/etc/hosts的內容如下:[bppf_inf@devapp001 ~]$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 devapp001 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.87.3 zookeeperServer1
通常hosts文件的每行爲一個主機的信息,並且每行由3部分組成,各個部分間由空格隔開,這三部分所表示的意思如下:
第一部分:網絡IP地址
第二部分:主機名或域名
第三部分:主機名別名
當然每行也可以是兩部分,即主機IP地址和主機名。
目前/etc/hosts多用於集羣環境或開發環境(以免重新架構內網DNS服務器)。