Linux服务器基础信息查询常用命令

在新接触一台Linux服务器或日常运维过程中,我们经常需要了解Linux服务运行状态、性能等详细信息,为此,笔者归纳总结了一些常用命令。

1. CPU信息

cpu的相关信息记录在/proc/cpuinfo这个文件中,我们只需要运行cat /proc/cpuinfo就可以详细了解cpu详细信息。其中,具有相同physical id的是同一物理cpu(即实际安装在主板上的cpu), 每个cpu都有核数(core), 例如双核CPU(即一个物理CPU上有两个核)。

查看物理CPU个数命令
1
cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l
查看CPU核数命令
1
cat /proc/cpuinfo | grep 'cpu cores' | uniq

物理CPU个数*核数 = 逻辑CPU个数

查看逻辑CPU个数
1
cat /proc/cpuinfo | grep 'processor' | wc -l
2. 内存使用情况
1
free -m # -m 表示以M作为显示单位

运行情况如下:

1
2
3
4
             total       used       free     shared    buffers     cached
Mem: 5945 5638 307 0 301 4035
-/+ buffers/cache: 1301 4644
Swap: 6141 7 6134

参数说明:

  1. total: 内存总数
  2. used: 已使用的内存数
  3. free: 空闲内存数
  4. buffers: 缓冲内存数
  5. cached: 缓存内存数
  6. -buffers/cache: 已用的内存数,= used-buffers-cached
  7. +buffers/cache: 可用内存数,=free+buffers+cached
  8. Swap: 交换分区内存数

其中,-buffers/cache是被程序实实在在占用的内存数,+buffers/cache是可以被使用的内存数。

在实际工作中,只要没发现用swap的交换空间,就不用担心内存太小,如果swap使用很多,就需要增加物理内存。

3. 硬盘使用情况
查看硬盘及分区情况
1
sudo fdisk -l

运行情况如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Disk /dev/xvdb: 107.4 GB, 107374182400 bytes
193 heads, 5 sectors/track, 217321 cylinders, total 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd36c4503

Device Boot Start End Blocks Id System
/dev/xvdb1 2048 207620095 103809024 5 Extended
/dev/xvdb5 4096 205524991 102760448 83 Linux

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000655c7

Device Boot Start End Blocks Id System
/dev/xvda1 2048 29360127 14679040 83 Linux
/dev/xvda2 29362174 41940991 6289409 5 Extended
/dev/xvda5 29362176 41940991 6289408 82 Linux swap / Solaris

可以知道,该服务器总共有2块硬盘,其中,· /dev/xvda有三个分区,21.5G,/dev/xvdb有两个分区,107.4G

查看硬盘使用情况
1
df -h

运行结果如下:

1
2
3
4
5
6
7
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1 14G 9.2G 3.9G 71% /
udev 2.9G 4.0K 2.9G 1% /dev
tmpfs 1.2G 216K 1.2G 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.0G 0 3.0G 0% /run/shm
/dev/xvdb5 97G 21G 72G 22% /web
查看硬盘I/O性能
1
iostat -d -x 1 10 # -d查看设备(硬盘)信息,-x查看更详细信息,1 10表示每隔1秒,采集数据10次

运行结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda 0.00 0.06 0.01 0.16 0.11 1.20 15.42 0.00 2.46 4.52 2.31 0.40 0.01

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

参数说明:

  1. Device: 设备名称
  2. rrqm/s: 每秒进行merge的读操作数目
  3. wrqm/s: 每秒进行merge的写操作数目
  4. r/s: 每秒完成读I/O操作的次数
  5. w/r: 每秒完成写I/O操作的次数
  6. rKB/s: 每秒读千字节数
  7. wKB/s: 每秒写千字节数
  8. await: 平均每次I/O操作等待时间(单位:毫秒)
  9. svctm: 平均每次I/O操作的服务时间(单位:毫秒)
  10. %util: 一秒钟有百分之多少的时间用于I/O操作

需要特别关注以下几个参数:

  1. %util如果接近100%说明I/O请求饱和,磁盘读写存在瓶颈;
  2. await时间不宜过大,过大说明I/O压力很大,需要更换响应速度更快的磁盘;
4. 负载

查看服务器负载情况可以通过uptime,top,w等命令查看。

uptime命令
1
uptime

运行结果如下:

1
18:01:21 up 36 days, 19:48,  2 users,  load average: 0.01, 0.04, 0.01
top命令
1
top

运行结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
top - 18:02:52 up 36 days, 19:50,  2 users,  load average: 0.00, 0.03, 0.00
Tasks: 91 total, 1 running, 90 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 499852 total, 9888 free, 42936 used, 447028 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 429332 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9201 root 20 0 138132 13984 8796 S 0.3 2.8 69:43.47 AliYunDun
1 root 20 0 37584 5124 3464 S 0.0 1.0 0:10.93 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:11.66 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root 20 0 0 0 0 S 0.0 0.0 2:53.81 rcu_sched
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
10 root rt 0 0 0 0 S 0.0 0.0 0:14.80 watchdog/0
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
12 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 perf
14 root 20 0 0 0 0 S 0.0 0.0 0:00.72 khungtaskd
15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback
w命令

通过w命令,除了显示负载信息外,还可以显示当前多少用户登录

1
w

运行结果如下:

1
2
3
4
18:04:40 up 36 days, 19:52,  2 users,  load average: 0.00, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 219.72.203.218 17:08 47:12 0.03s 0.01s bash
root pts/1 219.72.203.218 17:43 0.00s 0.02s 0.00s w

这几个命令运行结果中,负载信息都在第一行,例如:

1
18:04:40 up 36 days, 19:52,  2 users,  load average: 0.00, 0.02, 0.00

结果显示了系统当前时间,系统运行时长,当前在线用户,过去1分钟、5分钟、15分钟负载情况

需要注意负载值一般不能大于逻辑CPU的个数,如果长期大于逻辑CPU个数说明CPU压力过大,需要优化程序或服务器。

5.操作系统信息
查看内核信息
1
uname -a

运行结果如下:

1
Linux gitlib 4.4.0-117-generic #141-Ubuntu SMP Tue Mar 13 11:58:07 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
查看系统版本信息

操作系统版本信息记录在/etc/issue文件,执行cat命令即可查看操作系统信息

1
cat /etc/issue

运行结果如下:

1
Ubuntu 16.04.4 LTS \n \1
6. 网络配置

通过ifconfig命令可以查看当前服务器网络配置情况

1
ifconfig

运行结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
eth0      Link encap:Ethernet  HWaddr 00:16:3e:0c:34:e6
inet addr:192.168.1.19 Bcast:192.168.1.1 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1223225 errors:0 dropped:0 overruns:0 frame:0
TX packets:920515 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:316940317 (316.9 MB) TX bytes:704377461 (704.3 MB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:48 errors:0 dropped:0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:4584 (4.5 KB) TX bytes:4584 (4.5 KB)
Ravior wechat
微信公众号:万物为媒, 关注一个技术人员的成长之路
写的不错, 点个赞吧!