zhaoyu@home:~$

linux命令-硬件和系统

系统

查看centos发行版本:

 cat /etc/issue 或 cat /etc/centos-release

查看linux操作系统内核信息:

uname -a

硬件信息

dmidecode用于获得硬件方面的信息,包括BIOS,系统,主板,处理器,内存,缓存等等。

实例:

查看服务器型号:

	dmidecode | grep 'Product Name'

查看主板的序列号:

	dmidecode |grep 'Serial Number'

查看系统序列号:

	dmidecode -s system-serial-number

查看内存信息:

	dmidecode -t memory

查看OEM信息:

	dmidecode -t 11

CPU

查看cpu有多种方式。

	cat /proc/cpuinfo | head -20

或者

	lscpu

显示结果中,model name为CPU型号,siblings逻辑处理器数,cpu cores内核数。

硬盘信息

查看硬盘和分区的详细信息

	fdisk -l

查看挂载的分区状态。

	fdisk -l|grep Disk

查看硬盘和分区分布

	lsblk

查看硬盘的使用情况

	df -hT

top

查看系统运行情况,包括负载,cpu,内存等使用情况。
交互命令:
i:忽略限制和僵尸命令。
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;

结果如下:

top - 09:44:56 up 16 days, 21:23, 1 user, load average: 9.59, 4.75, 1.92 Tasks: 145 total, 
2 running, 143 sleeping, 0 stopped, 0 zombie Cpu(s): 99.8%us, 0.1%sy, 0.0%ni, 0.2%id, 0.0%wa, 
0.0%hi, 0.0%si, 0.0%st Mem: 4147888k total, 2493092k used, 1654796k free, 
158188k buffers Swap: 5144568k total, 56k used, 5144512k free, 2013180k cached

解释:

  • top - 09:44:56[当前系统时间],
  • 16 days[系统已经运行了16天],
  • 1 user[个用户当前登录],
  • load average: 9.59, 4.75, 1.92[系统负载,即任务队列的平均长度] 表示在过去的1、5、15分钟内运行队列中的平均进程数量。
      一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有 严重问题。对于上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的。
  • Tasks: 145 total[总进程数],
  • 2 running[正在运行的进程数],
  • 143 sleeping[睡眠的进程数],
  • 0 stopped[停止的进程数],
  • 0 zombie[冻结进程数],
  • Cpu(s): 99.8%us[用户空间占用CPU百分比],
  • 0.1%sy[内核空间占用CPU百分比],
  • 0.0%ni[用户进程空间内改变过优先级的进程占用CPU百分比],
  • 0.2%id[空闲CPU百分比], 0.0%wa[等待输入输出的CPU时间百分比],
  • 0.0%hi[],
  • 0.0%st[],
  • Mem: 4147888k total[物理内存总量],
  • 2493092k used[使用的物理内存总量],
  • 1654796k free[空闲内存总量],
  • 158188k buffers[用作内核缓存的内存量]
  • Swap: 5144568k total[交换区总量],
  • 56k used[使用的交换区总量],
  • 5144512k free[空闲交换区总量],
  • 2013180k cached[缓冲的交换区总量]。

swap 交换区

swap分区,即交换区,swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的 程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时, 再从Swap中恢复保存的数据到内存中。

swap区对性能的影响

swap区对性能的影响至关重要,通过调整swap,可以超越系统瓶颈,但分配太多,会造成磁盘浪费,而太小则会发生系统错误。

如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。 例如,Web服务器能根据不同的请求数量衍生出多个服务进程(或线程)如果系统物理内存不够用,网站打开会很慢,ping可能会丢包,延迟很大; 如果Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。

swap划分的规则

在linux中,对swap划分有一定的规则,当物理内存小于2G时,swap划分大小是物理内存的2倍;超过2G,和物理内存大小相等。当大于32G时,小于 物理内存比较好。当然规则也不是一成不变的。

pmap命令查看进程的内存映射信息

pmap -d pid

结果样例如下:


00007f88eb1f2000      12 rw--- 0000000000098000 0fd:00001 libaqsUtil.so.1
00007f88eb1f5000      12 rw--- 0000000000000000 000:00000   [ anon ]
00007f88eb1f8000       4 r---- 0000000000000000 0fd:00001 ld-2.32.so
00007f88eb1f9000     132 r-x-- 0000000000001000 0fd:00001 ld-2.32.so
00007f88eb224000       8 rw--- 000000000002b000 0fd:00001 ld-2.32.so
00007ffffeb07000     132 rwx-- 0000000000000000 000:00000   [ stack ]
ffffffffff600000       4 r-x-- 0000000000000000 000:00000   [ anon ]
mapped: 136124K    writeable/private: 67896K    shared: 636K

其中最后一行的mapped表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小; writeable/private 表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小 ;
shared 表示进程和其他进程共享的内存大小。