二十九、查看系统信息

king's blog
本节我们来了解下如何查看linux内存等系统信息,主要内容如下:
一、free:查看内存
二、uname:查看系统信息
三、uptime:查看运行时间
四、dmesg:分析核心产生的讯息
五、fuser:可以查看哪些文件被占用

一、free:查看内存

free命令用于查看内存详细情况,可直接输入free,显示的是以Kbyte为单位,当然也可带参数,常用参数如下:

1
2
3
4
5
6
7
  -b,-k,-m,-g show output in bytes, KB, MB, or GB
  -l show detailed low and high memory statistics
  -o use old format (no -/+buffers/cache line)
  -t display total for RAM + swap
  -s update every [delay] seconds
  -c update [count] times
  -V display version information and exit

下面我们来看几个例子,

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
#1.不带参数,free与free -k显示结果一样,单位为Kbyte
weblogic@ETS157:~> free
             total       used       free     shared    buffers     cached
Mem:       5992984    5844976     148008          0      47748    1991940
-/+ buffers/cache:    3805288    2187696
Swap:      2103292    1055912    1047380

#2.free -k
weblogic@ETS157:~> free -k
             total       used       free     shared    buffers     cached
Mem:       5992984    5844976     148008          0      47748    1991940
-/+ buffers/cache:    3805288    2187696
Swap:      2103292    1055912    1047380

#3.free -b,单位为Byte
weblogic@ETS157:~> free -b
             total       used       free     shared    buffers     cached
Mem:    6136815616 5985435648  151379968          0   48902144 2039746560
-/+ buffers/cache: 3896786944 2240028672
Swap:   2153771008 1081253888 1072517120

#4.free -m,单位为M
weblogic@ETS157:~> free -m
             total       used       free     shared    buffers     cached
Mem:          5852       5716        135          0         46       1945
-/+ buffers/cache:       3724       2127
Swap:         2053       1031       1022

我们们来对上面的free -m结果做个详细说明

1
2
3
4
5
                  1          2          3          4         5          6
1                total       used       free     shared    buffers     cached
2  Mem:          5852       5716        135          0         46       1945
3  -/+ buffers/cache:       3724       2127
4  Swap:         2053       1031       1022

free显示结果解释:
为方便解释,特意加上行号和列号,比如F[2][1]=5852 (total Mem)
free一共输出了4行内容,第1行代表的是内容如下:
total:表示物理内存总量
used:表示已使用的内容
free:表示未使用的内存
shared:共享内存
buffers:系统分配但未被使用的buffers数量
cached:系统分配但未被使用的cache数量

MEM:
第2行,代表的是系统内存的使用情况,Mem_Total = Mem_used + MeM_free,即F[2][1] = F[2][2] + F[2][3]

-/+ buffers/cache
第3行,代表的是buffer/cache的分配情况,我们可以得出如下公式:
Mem_used = Mem_buffers + Mem_cached + buffers_cache_used,即F[2][2] = F[2][5] + F[2][6] + F[3][2]
buffers_cache_free = Mem_free + Mem_buffers + Mem_cached,即F[3][3] = F[2][3] + F[2][5] + F[2][6]

Notes:buffer和cache的区别
buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.
cached是用来给文件做缓冲。也就是说:buffers是用来存储,比如目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件

SWAP
交换分区的情况

二、uname:查看系统信息

uname:用于显示系统和核心的相关信息,比如:

1
2
3
4
5
6
7
8
9
#1.不带参数
weblogic@ETS157:~> uname
Linux

#2.uname -a:表示显示所有的系统信息
weblogic@ETS157:~> uname -a
Linux ETS157 3.0.13-0.27-default #1 SMP Wed Feb 15 13:33:49 UTC 2012 (d73692b) x86_64 x86_64 x86_64 GNU/Linux

#以上信息表示:Linux主机使用的核心名称为Linux,主机名为ETS157,核心版本为 3.0.13-0.27-default,核心版本的日期是2012-2-15,适用的硬件平台为x86_64以上等级的硬件平台

三、uptime:查看运行时间

uptime:用于观察系统启动时间和工作负载,显示的是top命令结果的第一行

1
2
weblogic@ETS157:~> uptime
 09:37am  up 117 days  0:56,  8 users,  load average: 0.21, 0.07, 0.06

四、dmesg:分析核心产生的讯息

所有核心侦测的信息,不管是开机时候还是系统运作过程中,只要是核心产生的信息都会被记录到内存中的某个保护区段。 dmesg就是将该段信息都出来,用于分析系统问题

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
weblogic@ETS157:~> dmesg | more
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.0.13-0.27-default (geeko@buildhost) (gcc version
4.3.4 [gcc-4_3-branch revision 152973] (SUSE Linux) ) #1 SMP Wed Feb 15 13:33:49
 UTC 2012 (d73692b)
[    0.000000] Command line: root=/dev/disk/by-id/ata-VBOX_HARDDISK_VBc2626b77-b
97afdfe-part2 resume=/dev/disk/by-id/ata-VBOX_HARDDISK_VBc2626b77-b97afdfe-part1
 splash=silent crashkernel=256M-:128M vga=0x317
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
[    0.000000]  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000dfff0000 (usable)
[    0.000000]  BIOS-e820: 00000000dfff0000 - 00000000e0000000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved)
[    0.000000]  BIOS-e820: 0000000100000000 - 00000001a0000000 (usable)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI 2.5 present.
[    0.000000] DMI: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/20
06
[    0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) =
=> (reserved)
[    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
--More--

五、fuser:可以查看哪些文件被占用

linux是个多人系统,同一文件有可能被同时编辑/执行,那如何如查看呢,可使用fuser命令,请看下面的例子

1
2
3
4
5
6
7
8
9
10
11
12
#1.用weblogic用户通过vi编辑/opt/project/test/b.sh文件
#!/bin/bash

sleep 10
echo "Hello World!"

#2.另开一个窗口,root用户登陆后,通过fuser查看该文件被谁占用
ETS157:/opt/project/test # fuser -uv /opt/project/test
                     USER        PID ACCESS COMMAND
/opt/project/test:   weblogic  22153 ..c.. (weblogic)bash
                     weblogic  23356 ..c.. (weblogic)vi---->表示该文件被weblogic用户,以vi的方式使用
                     root      23364 ..c.. (root)bash
Tags:
文 / 甲乙丙丁
LEAVE A REPLY

loading