介绍
通常, Windows 中使用"任务管理器"主要有 3 个目的:
- 利用"应用程序"和"进程"标签来査看系统中到底运行了哪些程序和进程;
- 利用"性能"和"用户"标签来判断服务器的健康状态;
- 在"应用程序"和"进程"标签中强制中止任务和进程;
Linux 中虽然使用命令进行进程管理,但是进程管理的主要目的是一样的,即查看系统中运行的程序和进程、判断服务器的健康状态和强制中止不需要的进程。
进程优先级:
- 在 Linux 系统中,表示进程优先级的有两个参数:Priority (PRI )和 Nice(NI)
- PRI 数值越小代表该进程越优先被 CPU 处理。
- 其中PRI值是由内核动态调整的,用户不能直接修改。只能通过修改 NI 值来影响 PRI 值,间接地调整进程优先级。
- PRI 和 NI 的关系如下:PRI (最终值) = PRI (原始值) + NI
修改 NI 值时有几个注意事项:
- NI 范围是 -20~19。
- 普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。
- 普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
- 只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。
- 默认情况下,进程的nice值为0。
进程启动
启动一个进程主要有 2 种途径,分别是通过手工启动和通过调度启动(事先进行设置,根据用户要求,进程可以自行启动)。
(1)手动启动
由用户输入命令直接启动一个进程,根据所启动的进程类型和性质的不同,其又可以细分为前台启动和后台启动 2 种方式。
1)前台启动方式
前台启动方式是手工启动进程最常用的方式,因为当用户输入一个命令并运行,就已经启动了一个进程,而且是一个前台的进程,此时系统其实已经处于一个多进程的状态(一个是 Shell 进程,另一个是新启动的进程)。
2)后台启动
进程直接从后台运行,用的相对较少,除非该进程非常耗时,且用户也不急着需要其运行结果的时候。
格式:在命令结尾处添加一个 " &" 符号(注意,& 前面有空格);
输入命令并运行之后,Shell 会提供给我们一个数字,此数字就是该进程的进程号。然后直接就会出现提示符,用户就可以继续完成其他工作,例如:
[root@localhost ~]# find / -name install.log & [1] 1920 #[1]是工作号,1920是进程号
说明:手工启动 2 种方式的共同特点,就是新进程都是由当前 Shell 这个进程产生的。
(2)Linux调度启动过程
在 Linux 系统中,任务可以被配置在指定的时间、日期或者系统平均负载量低于指定值时自动启动。通过 crontab、at 等命令实现。
进程_常用命令
ps命令
作用:查看系统中所有运行进程的详细信息。
基本格式:
[root@localhost ~]# ps aux
#查看系统中所有的进程,使用 BS 操作系统格式
[root@localhost ~]# ps -le
#查看系统中所有的进程,使用 Linux 标准命令格式
选项说明:
- a:显示一个终端的所有进程,除会话引线外;
- u:显示进程的归属用户及内存的使用情况;
- x:显示没有控制终端的进程;
- -l:长格式显示更加详细的信息;
- -e:显示所有进程;
实例1:
说明:
- PID :进程的id。在linux中内核管理进程就得靠pid来识别和管理某一个程,比如我想终止某一个进程,则用 ‘kill 进程的pid’,有时并不能杀掉,则需要加一个-9选项了’kill -9 进程pid’
- STAT :表示进程的状态,进程状态分为以下几种
- D 不能中断的进程(通常为IO)
- R 正在运行中的进程
- S 已经中断的进程,通常情况下,系统中大部分进程都是这个状态
- T 已经停止或者暂停的进程,如果我们正在运行一个命令,比如说sleep 10,如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态
- W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配
- X 已经死掉的进程(这个好像从来不会出现)
- Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。
- < 高优先级进程
- N 低优先级进程
- L 在内存中被锁了内存分页
- s 主进程
- l 多线程进程
- + 代表在前台运行的进程
top命令
作用:可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。
基本格式:top [选项]
选项说明:
- -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;
- -b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;
- -n 次数:指定 top 命令执行的次数。一般和"-"选项合用;
- -p 进程PID:仅查看指定 ID 的进程;
- -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;
- -u 用户名:只监听某个用户的进程;
top命令:默认看到的只是 CPU 占比靠前的进程;
若想看到所有的进程,则可以把 top 命令的执行结果重定向到文件中。具体命令如下:
[root@localhost ~]# top -b -n 1 > /root/top.log
#让top命令只执行一次,然后把执行结果保存到top.log文件中,这样就能看到所有的进程。
在 top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作:
- ? 或 h:显示交互模式的帮助;
- P:按照 CPU 的使用率排序,默认就是此选项;
- M:按照内存的使用率排序;
- N:按照 PID 排序;
- T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
- k:按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号;
- r:按照 PID 给某个进程重设优先级(Nice)值;
- q:退出 top 命令;
[root@localhost ~]# top
top - 12:26:46 up 1 day, 13:32, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.1%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 625344k total, 571504k used, 53840k free, 65800k buffers
Swap: 524280k total, 0k used, 524280k free, 409280k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
19002 root 20 0 2656 1068 856 R 0.3 0.2 0:01.87 top
1 root 20 0 2872 1416 1200 S 0.0 0.2 0:02.55 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 0:00.15 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
6 root RT 0 0 0 0 S 0.0 0.0 0:10.01 watchdog/0
7 root 20 0 0 0 0 S 0.0 0.0 0:05.01 events/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm
13 root 20 0 0 0 0 S 0.0 0.0 0:01.70 sync_supers
14 root 20 0 0 0 0 S 0.0 0.0 0:00.63 bdi-default
15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0
16 root 20 0 0 0 0 S 0.0 0.0 0:02.52 kblockd/0
17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpid
18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify说明:
top 命令的输出内容是动态的,默认每隔 3 秒刷新一次。命令的输出主要分为两部分:
第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的;
第二部分从第六行开始,显示的是系统中进程的信息;
第一部分:
- 第一行为任务队列信息;
- 第二行为进程信息;
- 第三行为 CPU 信息;
- 第四行为物理内存信息;
- 第五行为交换分区(swap)信息;
第二部分:主要是系统进程信息,各个字段的含义如下:
- PID:进程的 ID。
- USER:该进程所属的用户。
- PR:优先级,数值越小优先级越高。
- NI:优先级,数值越小、优先级越高。
- VIRT:该进程使用的虚拟内存的大小,单位为 KB。
- RES:该进程使用的物理内存的大小,单位为 KB。
- SHR:共享内存大小,单位为 KB。
- S:进程状态。
- %CPU:该进程占用 CPU 的百分比。
- %MEM:该进程占用内存的百分比。
- TIME+:该进程共占用的 CPU 时间。
- COMMAND:进程的命令名。
pstree命令
作用:以树形结构显示程序和进程之间的关系。
基本格式:pstree [选项] [PID或用户名]
选项说明:
选项 | 含义 |
---|---|
-a | 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。 |
-c | 不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。 |
-n | 根据进程 PID 号来排序输出,默认是以程序名排序输出的。 |
-p | 显示进程的 PID。 |
-u | 显示进程对应的用户名称。 |
说明:
在使用 pstree 命令时,如果不指定进程的 PID 号,也不指定用户名称,则会以 init 进程为根进程,显示系统中所有程序和进程的信息;反之,若指定 PID 号或用户名,则将以 PID 或指定命令为根进程,显示 PID 或用户对应的所有程序和进程。
init 进程是系统启动的第一个进程,进程的 PID 是 1,也是系统中所有进程的父进程。
[root@lhyEdu ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]├─NetworkManager─┬─dhclient│ └─2*[{NetworkManager}]├─VGAuthService├─2*[abrt-watch-log]├─abrtd├─accounts-daemon───2*[{accounts-daemon}]├─alsactl├─atd├─auditd─┬─audispd─┬─sedispatch│ │ └─{audispd}│ └─{auditd}├─avahi-daemon───avahi-daemon├─chronyd├─crond├─cupsd├─dbus-daemon───{dbus-daemon}├─dnsmasq───dnsmasq├─gdm───3*[{gdm}]├─gssproxy───5*[{gssproxy}]├─irqbalance├─ksmtuned───sleep├─libvirtd───16*[{libvirtd}]├─lsmd├─lvmetad├─master─┬─pickup│ └─qmgr├─polkitd───6*[{polkitd}]├─rngd├─rpcbind├─rsyslogd───2*[{rsyslogd}]├─rtkit-daemon───2*[{rtkit-daemon}]├─smartd├─sshd───sshd───bash───pstree├─systemd-journal├─systemd-logind├─systemd-udevd├─tuned───4*[{tuned}]├─udisksd───4*[{udisksd}]├─upowerd───2*[{upowerd}]└─vmtoolsd───{vmtoolsd}
lsof命令
作用:根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。
基本格式: lsof [选项]
选项说明:
选项 | 功能 |
---|---|
-c 字符串 | 只列出以字符串开头的进程打开的文件。 |
+d 目录名 | 列出某个目录中所有被进程调用的文件。 |
-u 用户名 | 只列出某个用户的进程打开的文件。 |
-p pid | 列出某个 PID 进程打开的文件。 |
实例1:#查询系统中所有进程调用的文件
[root@lhyEdu ~]# lsof |more
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 253,0 4096 2 /
systemd 1 root rtd DIR 253,0 4096 2 /
systemd 1 root txt REG 253,0 1616360 535827 /usr/lib/systemd/systemd
systemd 1 root mem REG 253,0 20112 416222 /usr/lib64/libuuid.so.1.3.0
systemd 1 root mem REG 253,0 265624 416420 /usr/lib64/libblkid.so.1.1.0
systemd 1 root mem REG 253,0 90248 415700 /usr/lib64/libz.so.1.2.7
systemd 1 root mem REG 253,0 157424
…省略部分输出…
实例2:#查询某个文件被哪个进程调用
[root@localhost ~]# lsof /sbin/init
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root txt REG 8,3 145180 130874 /sbin/init
实例3:#查看以httpd开头的进程调用了哪些文件
[root@localhost ~]# lsof -c httpd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 4689 root cwd DIR 8,3 4096 2 /
httpd 4689 root rtd DIR 8,3 4096 2 /
httpd 4689 root txt REG 8,3 1797559 2855 /usr/local/apache2/bin/httpd
httpd 4689 root mem REG 8,3 302300 665303 /lib/libfreebl3.so
httpd 4689 root mem REG 8,3 58704 655087 /lib/libnss_files-2.12.s
httpd 4689 root mem REG 8,3 142472 665291 /lib/ld-2.12.so
httpd 4689 root mem REG 8,3 1889704 665292 /lib/libc-2.12.so
…省略部分输出…
使用“-c”选项可以查询以某个字符串开头的进程调用的所有文件,比如执行“lsof-c httpd”命令就会查询出以 httpd 开头的进程调用的所有文件。
nice命令
作用:给要启动的进程赋予 NI 值,进而调整进程的运行顺序。【但是不能修改已运行进程的 NI 值】
基本格式:nice [-n NI值] 命令
选项说明:-n NI值:给命令赋予 NI 值,该值的范围为 -20~19;
renice命令
作用:在进程运行时修改其 NI 值,从而调整优先级
基本格式: renice [优先级] PID
选项说明:此命令中使用的是进程的 PID 号,因此常与 ps 等命令配合使用
kill命令
作用:向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。
基本格式:kill [信号] PID
常用信号说明:
信号编号 | 信号名 | 含义 |
---|---|---|
0 | EXIT | 程序退出时收到该信息。 |
1 | HUP | 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。 |
2 | INT | 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。 |
3 | QUIT | 退出。 |
9 | KILL | 杀死进程,即强制结束进程。 |
11 | SEGV | 段错误。 |
15 | TERM | 正常结束进程,是 kill 命令的默认信号。 |
killall命令
作用:通过程序的进程名来杀死一类进程;该命令常与 ps、pstree 等命令配合使用。
基本格式:killall [选项] [信号] 进程名
选项说明:
- -i:交互式,询问是否要杀死某个进程;
- -I:忽略进程名的大小写;
pkill命令
作用:和 killall 命令的用法相同,都是通过进程名杀死一类进程。还可以按照终端号来踢出用户登录。
基本格式一:pkill [信号] 进程名
基本格式二:pkill [-t 终端号] 进程名
选项说明:
- [-t 终端号] 选项用于按照终端号踢出用户
jobs命令
作用:可以用来查看当前终端放入后台的工作;
基本格式:jobs [选项]
选项说明:
选项 | 含义 |
---|---|
-l(L 的小写) | 列出进程的 PID 号。 |
-n | 只列出上次发出通知后改变了状态的进程。 |
-p | 只列出进程的 PID 号。 |
-r | 只列出运行中的进程。 |
-s | 只列出已停止的进程。 |
例如:
[root@localhost ~]#jobs -l
[1]- 2023 Stopped top
[2]+ 2034 Stopped tar -zcf etc.tar.gz /etc可以看到,当前终端有两个后台工作:一个是 top 命令,工作号为 1,状态是暂停,标志是"-";另一个是 tar 命令,工作号为 2,状态是暂停,标志是"+"。"+"号代表最近一个放入后台的工作,也是工作恢复时默认恢复的工作。"-"号代表倒数第二个放入后台的工作,而第三个以后的工作就没有"+-"标志了。
一旦当前的默认工作处理完成,则带减号的工作就会自动成为新的默认工作,换句话说,不管此时有多少正在运行的工作,任何时间都会有且仅有一个带加号的工作和一个带减号的工作。
fg命令
作用:用于把后台工作恢复到前台执行
基本格式:fg %工作号
注意:在使用此命令时,% 可以省略,但若将% 工作号
全部省略,则此命令会将带有 + 号的工作恢复到前台。另外,使用此命令的过程中, % 可有可无。
bg命令
作用:把后台暂停的工作恢复到后台执行
基本格式:bg %工作号
选项说明:% 可以省略
nohup命令
作用:让后台工作在离开操作终端时,也能够正确地在后台执行
基本格式: nohup [命令] &
选项说明:‘&’表示此命令会在终端后台工作;反之,如果没有‘&’,则表示此命令会在终端前台工作
任务计划_常用命令
at命令
作用:
- 只要指定正确的时间,就可以输入需要在指定时间执行的命令。这个命令可以是系统命令,也可以是 Shell 脚本。【最好使用绝对路径来写命令,这样不容易报错】
- at 任务一旦使用
Ctrl+D
快捷键保存,实际上写入了 /var/spool/at/ 这个目录,这个目录内的文件可以直接被 atd 服务调用和执行。
基本格式:at [选项] [时间]
选项说明:
选项 | 含义 |
---|---|
-m | 当 at 工作完成后,无论命令是否输出,都用 E-mail 通知执行 at 命令的用户。 |
-c 工作标识号 | 显示该 at 工作的实际内容。 |
-t 时间 | 在指定时间提交工作并执行,时间格式为 [[CC]YY]MMDDhhmm。 |
-d | 删除某个工作,需要提供相应的工作标识号(ID),同 atrm 命令的作用相同。 |
-l | 列出当前所有等待运行的工作,和 atq 命令具有相同的额作用。 |
-f 脚本文件 | 指定所要提交的脚本文件。 |
格式 | 用法 |
---|---|
HH:MM | 比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行。 |
Midnight(midnight) | 代表 12:00 AM(也就是 00:00)。 |
Noon(noon) | 代表 12:00 PM(相当于 12:00)。 |
Teatime(teatime) | 代表 4:00 PM(相当于 16:00)。 |
英文月名 日期 年份 | 比如 January 15 2018 表示 2018 年 1 月 15 号,年份可有可无。 |
MMDDYY、MM/DD/YY、MM.DD.YY | 比如 011518 表示 2018 年 1 月 15 号。 |
now+时间 | 以 minutes、hours、days 或 weeks 为单位,例如 now+5 days 表示命令在 5 天之后的此时此刻执行。 |
atq 命令和 atrm 命令。atq 命令用于查看当前等待运行的工作,atrm 命令后者用于删除指定的工作 。
说明:
使用at命令:需提前安装好 at 软件包,并开启 atd 服务。
at 命令的访问控制是依靠 /etc/at.allow(白名单)和 /etc/at.deny(黑名单)这两个文件来实现的,具体规则如下:
- 如果系统中有 /etc/at.allow 文件,那么只有写入 /etc/at.allow 文件(白名单)中的用户可以使用 at 命令,其他用户不能使用 at 命令(注意,/etc/at.allow 文件的优先级更高,也就是说,如果同一个用户既写入 /etc/at.allow 文件,又写入 /etc/at.deny 文件,那么这个用户是可以使用 at 命令的)。
- 如果系统中没有 /etc/at.allow 文件,只有 /etc/at.deny 文件,那么写入 /etc/at.deny 文件(黑名单)中的用户不能使用 at 命令,其他用户可以使用 at 命令。不过这个文件对 root 用户不生效。
- 如果系统中这两个文件都不存在,那么只有 root 用户可以使用 at 命令。
系统中默认只有 /etc/at.deny 文件,而且这个文件是空的,因此,系统中所有的用户都可以使用 at 命令。不过,如果我们打算控制用户的 at 命令权限,那么只需把用户写入 /etc/at.deny 文件即可。
/etc/at.allow 文件的优先级更高,如果 /etc/at.allow 文件存在,则 /etc/at.deny 文件失效。
crontab命令
作用:执行循环定时任务。
基本格式:crontab [选项] [file]
选项说明:
选项 | 功能 |
---|---|
-u user | 用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行。 |
-e | 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。 |
-l | 显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。 |
-r | 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。 |
-i | 在删除用户的 crontab 文件时,给确认提示。 |
项目 | 含义 | 范围 |
---|---|---|
第一个"*" | 一小时当中的第几分钟(minute) | 0~59 |
第二个"*" | 一天当中的第几小时(hour) | 0~23 |
第三个"*" | 一个月当中的第几天(day) | 1~31 |
第四个"*" | 一年当中的第几个月(month) | 1~12 |
第五个"*" | 一周当中的星期几(week) | 0~7(0和7都代表星期日) |
特殊符号 | 含义 |
---|---|
*(星号) | 代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。 |
,(逗号) | 代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。 |
-(中杠) | 代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。 |
/(正斜线) | 代表每隔多久执行一次。比如"*/10****命令",代表每隔 10 分钟就执行一次命令。 |
系统管理_常用命令
vmstat命令
作用:可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息
基本格式:
[root@localhost ~]# vmstat [-a] [刷新延时 刷新次数]
[root@localhost ~]# vmstat [选项]
选项说明:
选项 | 含义 |
---|---|
-fs | -f:显示从启动到目前为止,系统复制(fork)的程序数,此信息是从 /proc/stat 中的 processes 字段中取得的。 -s:将从启动到目前为止,由一些事件导致的内存变化情况列表说明。 |
-S 单位 | 令输出的数据显示单位,例如用 K/M 取代 bytes 的容量。 |
-d | 列出硬盘有关读写总量的统计表。 |
-p 分区设备文件名 | 查看硬盘分区的读写情况。 |
[root@lhyEdu ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 0 3421772 27204 407716 0 0 49 4 34 42 0 0 99 0 0
1)procs 显示进程相关信息
- r :表示运行和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了;
- b :表示等待资源的进程数,比如等待I/O, 内存等,这列的值如果长时间大于1,则需要你关注一下了;
2)memory 内存相关信息
- swpd :表示切换到交换分区中的内存数量 ;
- free :当前空闲的内存数量;
- buff :缓冲大小,(即将写入磁盘的);
- cache :缓存大小,(从磁盘中读取的);
3)swap 内存交换情况
- si :由内存进入交换区的数量;
- so :由交换区进入内存的数量;
4)io 磁盘使用情况
- bi :从块设备读取数据的量(读磁盘);
- bo: 从块设备写入数据的量(写磁盘);
5)system 显示采集间隔内发生的中断次数
- in :表示在某一时间间隔中观测到的每秒设备中断数;
- cs :表示每秒产生的上下文切换次数;
6)CPU 显示cpu的使用状态
- us :显示了用户下所花费 cpu 时间的百分比;
- sy :显示系统花费cpu时间百分比;
- id :表示cpu处于空闲状态的时间百分比;
- wa :表示I/O等待所占用cpu时间百分比;
- st :表示被偷走的cpu所占百分比(一般都为0,不用关注);
说明:
如果磁盘io压力很大时,si, so两列的数值会比较高,若同时在不断变化时,说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。
dmesg命令
作用:用于查看系统的硬件信息
基本格式:dmesg
选项说明:除此之外,开机信息也可以通过 /var/log/ 目录中的 dmesg 文件进行查看
free命令
作用:用来显示系统内存状态,包括系统物理内存、虚拟内存(swap 交换分区)、共享内存和系统缓存的使用情况,其输出和 top 命令的内存部分非常相似。
基本格式:free [选项]
选项说明:
选项 | 含义 |
-b | 以 Byte(字节)为单位,显示内存使用情况。 |
-k | 以 KB 为单位,显示内存使用情况,此选项是 free 命令的默认选项。 |
-m | 以 MB 为单位,显示内存使用情况。 |
-g | 以 GB 为单位,显示内存使用情况。 |
-t | 在输出的最终结果中,输出内存和 swap 分区的总量。 |
-o | 不显示系统缓冲区这一列。 |
-s 间隔秒数 | 根据指定的间隔时间,持续显示内存使用情况。 |
[root@lhyEdu ~]# freetotal used free shared buff/cache available
Mem: 4026376 174656 3416752 12244 434968 3564104
Swap: 2097148 0 2097148说明:
当前系统内存总大小为4026376(单位是k)已经使用174656,剩余3416752。其实真正剩余并不是这个3416752,而是第二行的2097148,真正使用的也是第二行的2097148。因为系统初始化时,就已经分配出很大一部分内存给缓存,这部分缓存用来随时提供给程序使用,如果程序不用,那这部分内存就空闲。所以,查看内存使用多少,剩余多少请看第二行的数据。另外你还可以加-m 或者-g选项分别以M或G为单位打印内存使用状况。
w命令
作用:查看服务器上目前已登录的用户信息,还可以知道每个用户执行任务的情况。
基本格式:
w [选项] [用户名]
选项说明:
选项 | 含义 |
---|---|
-h | 不显示输出信息的标题 |
-l | 用长格式输出 |
-s | 用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间 |
-V | 显示版本信息 |
[root@lhyEdu ~]# w10:36:56 up 25 min, 1 user, load average: 0.00, 0.01, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.58.1 10:12 0.00s 0.14s 0.02s w
说明:
- 第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。
- 第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。
- 第一行中的’load average:’后面的三个数值。第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过你服务器的cpu数量就没有关系。【/proc/cpuinfo文件记录cpu的详细信息】
查看服务器有几个cpu:cat /proc/cpuinfo
who命令
作用:查看服务器上目前已登录的用户信息
基本格式: who [选项] [file]
选项说明:
选项 | 含义 |
---|---|
-a | 列出所有信息,相当于所有选项。 |
-b | 列出系统最近启动的时间日期。 |
-l | 列出所有可登陆的终端信息。 |
-m | 仅列出关于当前终端的信息,who -m 命令等同于 who am i 。 |
-q | 列出在本地系统上的用户和用户数的清单。 |
-r | 显示当前系统的运行级别。 |
-s | 仅显示名称、线路和时间字段信息,这是 who 命令的默认选项。 |
-u | 显示当前每个用户的用户名、登陆终端、登陆时间、线路活动和进程标识。 |
-T 或 -w | 显示 tty 终端的状态,“+”表示对任何人可写,“-”表示仅对 root 用户或所有者可写,“?”表示遇到线路故障。 |
last和lastlog命令
作用:last 命令可以查看当前和过去登陆系统用户的相关信息;lastlog 命令可以查看到每个系统用户最近一次登陆系统的时间。
基本格式:
last [选项]
lastlog
选项说明:
选项 | 含义 |
---|---|
-a | 把从何处登陆系统的主机名或 IP 地址显示在最后一行。 |
-R | 不显示登陆系统的主机名或 IP 地址。 |
-x | 显示系统关机、重新开机以及执行等级的改变等信息。 |
-n 显示列数 | 设置列出信息的显示列数。 |
-d | 将显示的 IP 地址转换成主机名称。 |