• Linux(五)__系统管理


    介绍

    通常, Windows 中使用"任务管理器"主要有 3 个目的:

    1. 利用"应用程序"和"进程"标签来査看系统中到底运行了哪些程序和进程;
    2. 利用"性能"和"用户"标签来判断服务器的健康状态;
    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 命令; 
    1. [root@localhost ~]# top
    2. top - 12:26:46 up 1 day, 13:32, 2 users, load average: 0.00, 0.00, 0.00
    3. Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
    4. 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
    5. Mem: 625344k total, 571504k used, 53840k free, 65800k buffers
    6. Swap: 524280k total, 0k used, 524280k free, 409280k cached
    7. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    8. 19002 root 20 0 2656 1068 856 R 0.3 0.2 0:01.87 top
    9. 1 root 20 0 2872 1416 1200 S 0.0 0.2 0:02.55 init
    10. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
    11. 3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
    12. 4 root 20 0 0 0 0 S 0.0 0.0 0:00.15 ksoftirqd/0
    13. 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
    14. 6 root RT 0 0 0 0 S 0.0 0.0 0:10.01 watchdog/0
    15. 7 root 20 0 0 0 0 S 0.0 0.0 0:05.01 events/0
    16. 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup
    17. 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper
    18. 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 netns
    19. 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async/mgr
    20. 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm
    21. 13 root 20 0 0 0 0 S 0.0 0.0 0:01.70 sync_supers
    22. 14 root 20 0 0 0 0 S 0.0 0.0 0:00.63 bdi-default
    23. 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kintegrityd/0
    24. 16 root 20 0 0 0 0 S 0.0 0.0 0:02.52 kblockd/0
    25. 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpid
    26. 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify
    27. 说明:
    28. top 命令的输出内容是动态的,默认每隔 3 秒刷新一次。命令的输出主要分为两部分:
    29. 第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的;
    30. 第二部分从第六行开始,显示的是系统中进程的信息;

    第一部分:

    • 第一行为任务队列信息;
    • 第二行为进程信息;
    • 第三行为 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,也是系统中所有进程的父进程。

    1. [root@lhyEdu ~]# pstree
    2. systemd─┬─ModemManager───2*[{ModemManager}]
    3. ├─NetworkManager─┬─dhclient
    4. │ └─2*[{NetworkManager}]
    5. ├─VGAuthService
    6. ├─2*[abrt-watch-log]
    7. ├─abrtd
    8. ├─accounts-daemon───2*[{accounts-daemon}]
    9. ├─alsactl
    10. ├─atd
    11. ├─auditd─┬─audispd─┬─sedispatch
    12. │ │ └─{audispd}
    13. │ └─{auditd}
    14. ├─avahi-daemon───avahi-daemon
    15. ├─chronyd
    16. ├─crond
    17. ├─cupsd
    18. ├─dbus-daemon───{dbus-daemon}
    19. ├─dnsmasq───dnsmasq
    20. ├─gdm───3*[{gdm}]
    21. ├─gssproxy───5*[{gssproxy}]
    22. ├─irqbalance
    23. ├─ksmtuned───sleep
    24. ├─libvirtd───16*[{libvirtd}]
    25. ├─lsmd
    26. ├─lvmetad
    27. ├─master─┬─pickup
    28. │ └─qmgr
    29. ├─polkitd───6*[{polkitd}]
    30. ├─rngd
    31. ├─rpcbind
    32. ├─rsyslogd───2*[{rsyslogd}]
    33. ├─rtkit-daemon───2*[{rtkit-daemon}]
    34. ├─smartd
    35. ├─sshd───sshd───bash───pstree
    36. ├─systemd-journal
    37. ├─systemd-logind
    38. ├─systemd-udevd
    39. ├─tuned───4*[{tuned}]
    40. ├─udisksd───4*[{udisksd}]
    41. ├─upowerd───2*[{upowerd}]
    42. └─vmtoolsd───{vmtoolsd}

    lsof命令

    作用:根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

    基本格式: lsof [选项]

    选项说明:

    选项功能
    -c 字符串只列出以字符串开头的进程打开的文件。
    +d 目录名列出某个目录中所有被进程调用的文件。
    -u 用户名只列出某个用户的进程打开的文件。
    -p pid列出某个 PID 进程打开的文件。

    实例1:#查询系统中所有进程调用的文件 

    1. [root@lhyEdu ~]# lsof |more
    2. COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    3. systemd 1 root cwd DIR 253,0 4096 2 /
    4. systemd 1 root rtd DIR 253,0 4096 2 /
    5. systemd 1 root txt REG 253,0 1616360 535827 /usr/lib/systemd/systemd
    6. systemd 1 root mem REG 253,0 20112 416222 /usr/lib64/libuuid.so.1.3.0
    7. systemd 1 root mem REG 253,0 265624 416420 /usr/lib64/libblkid.so.1.1.0
    8. systemd 1 root mem REG 253,0 90248 415700 /usr/lib64/libz.so.1.2.7
    9. systemd 1 root mem REG 253,0 157424
    10. …省略部分输出…

    实例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

    常用信号说明:

    信号编号信号名含义
    0EXIT 程序退出时收到该信息。
    1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
    2INT表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
    3QUIT退出。
    9KILL杀死进程,即强制结束进程。
    11SEGV 段错误。
    15TERM正常结束进程,是 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 脚本文件指定所要提交的脚本文件。

    at 命令时间参数说明:

    格式用法
    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 文件时,给确认提示。

     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 分区设备文件名查看硬盘分区的读写情况。
    1. [root@lhyEdu ~]# vmstat
    2. procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
    3. r b swpd free buff cache si so bi bo in cs us sy id wa st
    4. 1 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 间隔秒数根据指定的间隔时间,持续显示内存使用情况。
    1. [root@lhyEdu ~]# free
    2. total used free shared buff/cache available
    3. Mem: 4026376 174656 3416752 12244 434968 3564104
    4. Swap: 2097148 0 2097148
    5. 说明:
    6. 当前系统内存总大小为4026376(单位是k)已经使用174656,剩余3416752。其实真正剩余并不是这个3416752,而是第二行的2097148,真正使用的也是第二行的2097148
    7. 因为系统初始化时,就已经分配出很大一部分内存给缓存,这部分缓存用来随时提供给程序使用,如果程序不用,那这部分内存就空闲。所以,查看内存使用多少,剩余多少请看第二行的数据。
    8. 另外你还可以加-m 或者-g选项分别以M或G为单位打印内存使用状况。

    w命令

    作用:查看服务器上目前已登录的用户信息,还可以知道每个用户执行任务的情况。

    基本格式: 

    w [选项] [用户名]

    选项说明:

    选项含义
    -h不显示输出信息的标题
    -l用长格式输出
    -s用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
    -V显示版本信息
    1. [root@lhyEdu ~]# w
    2. 10:36:56 up 25 min, 1 user, load average: 0.00, 0.01, 0.06
    3. USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    4. 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

    选项说明:

     last 命令常用选项及含义

    选项含义
    -a把从何处登陆系统的主机名或 IP 地址显示在最后一行。
    -R不显示登陆系统的主机名或 IP 地址。
    -x显示系统关机、重新开机以及执行等级的改变等信息。
    -n 显示列数设置列出信息的显示列数。
    -d将显示的 IP 地址转换成主机名称。

  • 相关阅读:
    使用FastChat部署Baichuan2
    LLVM 文档收集
    k8s--基础--14--deployment
    MOCK远程API调用的简单实现
    企业如何正确使用低代码转型升级
    前端解决反序列化long类型精度丢失的问题
    什么是反向代理,它是如何工作的?
    逍遥自在学C语言 | 位运算符>>的高级用法
    47 - 父子间的冲突
    【Elasticsearch专栏 02】深入探索:Elasticsearch为什么使用倒排索引而不是正排索引
  • 原文地址:https://blog.csdn.net/hahaha2221/article/details/136174942