目录
一、vmstat命令 Virtual Meomory Statistics(虚拟内存统计)
一、vmstat命令 Virtual Meomory Statistics(虚拟内存统计)
作用:动态的了解一下系统资源的使用状况,以及查看当前系统中到底是哪个环节最占用系统资源
可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息
[root@localhost ~]# vmstat [-a] [刷新延时 刷新次数]
[root@localhost ~]# vmstat [选项]
#-a 的含义是用 inact/active(活跃与否) 来取代 buff/cache 的内存输出信息
字段 | 含义 |
---|---|
procs | 进程信息字段:
|
memory | 内存信息字段:
|
swap | 交换分区信息字段:
|
io | 磁盘读/写信息字段:
|
system | 系统信息字段:
|
cpu | CPU信息字段:
|
缓存和缓冲的区别
#简单来说缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。
#都是从内存中拿出一部分空间用来加速数据读取和写入
二、dmesg命令 开机时内核检测信息
无论是系统启动过程中,还是系统运行过程中,只要是内核产生的信息,都会被存储在系统缓冲区中,如果开机时来不及查看相关信息,可以使用 dmesg 命令将信息调出,此命令常用于查看系统的硬件信息。
除此之外,开机信息也可以通过 /var/log/ 目录中的 dmesg 文件进行查看。
[root@localhost ~]# dmesg
查看CPU信息
[root@localhost ~]# dmesg | grep CPU
[ 0.000000] CPU MTRRs all blank - virtualized system.
[ 0.000000] ACPI: SSDT 0000000027ff02a0 001CC (v01 VBOX VBOXCPUT 00000002 INTL 20100528)
[ 0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
[ 0.000000] setup_percpu: NR_CPUS:5120 nr_cpumask_bits:2 nr_cpu_ids:2 nr_node_ids:1
[ 0.000000] PERCPU: Embedded 31 pages/cpu @ffff880027c00000 s87168 r8192 d31616 u1048576
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] RCU restricting CPUs from NR_CPUS=5120 to nr_cpu_ids=2.
[ 0.000000] Offload RCU callbacks from all CPUs
[ 0.000000] Offload RCU callbacks from CPUs: 0-1.
[ 0.004173] CPU: Physical Processor ID: 0
[ 0.004176] CPU: Processor Core ID: 0
[ 0.005597] mce: CPU supports 0 MCE banks
[ 0.077132] smpboot: CPU0: Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz (fam: 06, model: 5e, stepping: 03)
[ 0.190670] Performance Events: unsupported p6 CPU model 94 no PMU driver, software events only.
[ 0.205585] mce: CPU supports 0 MCE banks
[ 0.207719] Brought up 2 CPUs
[ 1.019449] microcode: CPU0 sig=0x506e3, pf=0x2, revision=0x0
[ 1.019460] microcode: CPU1 sig=0x506e3, pf=0x2, revision=0x0
查看第一块网卡信息
[root@localhost ~]# dmesg | grep eth0
[ 2.406609] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 08:00:27:6c:3e:95
[ 2.406621] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection
三、free命令
free 命令用来显示系统内存状态,包括系统物理内存、虚拟内存(swap 交换分区)、共享内存和系统缓存的使用情况,其输出和 top 命令的内存部分非常相似。
[root@localhost ~]# free [选项]
[选项]
-b: 以 Byte(字节)为单位,显示内存使用情况。
-k: 以 KB 为单位,显示内存使用情况,此选项是 free 命令的默认选项。
-m: 以 MB 为单位,显示内存使用情况。
-g: 以 GB 为单位,显示内存使用情况。
-t: 在输出的最终结果中,输出内存和 swap 分区的总量。
-o: 不显示系统缓冲区这一列。
-s: 间隔秒数 根据指定的间隔时间,持续显示内存使用情况。
[输出]
total: 表示系统的总内存
used: 表示应用程序已经使用的内存
free: 表示当前还没有被使用的内存
shared: 表示共享链接库使用的内存
buff/cache: 表示系统的page cache和buffer使用到的内存
available: 表示应用程序还可以申请到的内存
available <= free + buff/cache
这里是小于,因为系统的一些page或cache是不能回收的。
四、查看CPU信息
cat /proc/cpuinfo
五、uptime
#显示系统的启动时间和平均负载,也就是top命令的第一行。w命令也可以看到这个数据
六、查看系统与内核相关信息
uname
uname [选项]
[选项]
-a: 查看系统所有相关信息
-r: 查看内核版本
-s: 查看内核名称
七、列出进程调用或打开的文件信息
lsof命令
通过 ps 命令可以查询到系统中所有的进程,那么,是否可以进一步知道这个进程到底在调用哪些文件吗?当然可以,使用 lsof 命令即可。
[root@localhost ~]# lsof [选项]
[选项]
-c 字符串 只列出以字符串开头的进程打开的文件。
+d 目录名 列出某个目录中所有被进程调用的文件。
-u 用户名 只列出某个用户的进程打开的文件。
-p pid 列出某个 PID 进程打开的文件。
例
[root@localhost ~]# lsof | more
#查询系统中所有进程调用的文件
[root@localhost ~]# lsof /sbin/init
#查询某个文件被哪个进程调用
[root@localhost ~]# lsof +d /usr/lib
#查询某个目录下所有的文件是被哪些进程调用的
[root@localhost ~]# lsof -c httpd
#查看以httpd开头的进程调用了哪些文件
[root@localhost ~]# lsof -p 1
#查询PID是1的进程调用的文件
[root@localhost ~]# lsof -u root
#按照用户名查询某个用户的进程调用的文件