Linux | 进程管理 & 服务管理

INDEX

      • §1 基本
      • §2 常用指令
        • §2.1 ps [查看进程]
        • §2.2 pstree [查看进程树]
        • §2.3 kill/killall [杀进程]
        • §2.4 service/systemctl [服务控制指令]
        • §2.5 chkconfig [服务运行级别操作指令]
        • §2.6 top [动态进程监控 常用性能工具]
        • §2.7 netstat [网络进程监控 常用网络监控工具]

§1 基本

关于进程

  • Linux 中每个执行的程序都称为一个 进程
  • 每个进程都分配一个 ID
  • 每个进程都对应一个父进程,每个父进程都可以复制多个子进程
  • 进程可以以两种方式存在
    • 前台:用户当前屏幕正在操作的进程
    • 后台:用户实际在操作,但屏幕上未显示
  • 系统服务通常以后台进程形式常驻系统中,直到关机

关于服务

  • 服务的本质就是进程
  • 服务的进程通常运行于后台,又名守护进程
  • 服务通常监听某个端口,等待其他程序请求

§2 常用指令

§2.1 ps [查看进程]

全称:processes status 进程状态
指令:ps aux 显示全部进程所有信息,BSD 风格
Linux | 进程管理 & 服务管理_第1张图片
指令:ps -u root u 显示root用户(-u)进程的用户格式(u)信息
指令:ps -ef 显示所有进程所有信息,一般需要查看父进程时使用
Linux | 进程管理 & 服务管理_第2张图片

说明:

参数信息如下

  • -a 显示所有进程
  • -e 同 -a
  • -f 使用全格式显示进程,增加 UID、PPID、C、STIME
  • -u 按用户名筛选进程
  • u 使用用户格式显示进程信息,增加列 User、%CPU、%MEM、VSZ、RSS
  • -x 显示后台进程运行参数
  • -m 显示所有线程
  • -p 指定某个进程
  • -o 自定义输出,常用 THREAD,tid,time

字段说明

  • USER 用户
  • UID 同 USER
  • PID 进程 ID
  • PPID 父进程 ID
  • %CPU cpu使用率
  • %MEM 内存占用率
  • C 同 %CPU
  • VSZ 占用的虚拟内存,单位 KB
  • RSS 占用的物理内存,单位 KB
  • TTY 使用的终端
    • ? 表示与终端无关
    • pts/0 表示由网络连接的进程
  • STAT 状态
    • D: 无法中断的休眠状态 (通常 IO 的进程)
    • R: run,正在执行中
    • S: sleep,静止状态
    • T: 暂停执行
    • Z: 不存在但暂时无法消除
    • W: 没有足够的记忆体分页可分配
    • <: 高优先序的行程
    • N: 低优先序的行程
    • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
    • s:进程的领导者,其下有子进程
    • |:多线程,克隆线程
    • +:位于后台的进程组
  • START 进程启动时间
  • TIME 进程占用 CPU 的总时间,单位分钟(00:05 表示5分钟)
  • STIME 同 TIME
  • COMMAND 进程启动时的命令行
  • CMD 同 COMMAND

§2.2 pstree [查看进程树]

指令:pstree
Linux | 进程管理 & 服务管理_第3张图片
指令:pstree -up 显示进程树,显示用户、进程ID
在这里插入图片描述

§2.3 kill/killall [杀进程]

指令:kill -9 进程 ID 强制立即停止
指令:kill (UID==某用户)的进程ID 踢掉非法登陆的某用户
指令:kill /usr/sbin/sshd的进程ID 禁止 sshd 登陆
指令:killall 进程名 终止某进程名的进程,可能终止多个同名,可以使用通配符

§2.4 service/systemctl [服务控制指令]

版本:centOs 7.0 以下,7.0开始使用 systemctl指令
指令:service 服务名 操作
Linux | 进程管理 & 服务管理_第4张图片
说明:
服务操作列表

  • status 查看服务状态
  • stop 停止
  • start 启动
  • restart 重启

查看服务列表 /etc/init.d 目录下

§2.5 chkconfig [服务运行级别操作指令]

全称:check config
指令:chkconfig --list 查看服务
Linux | 进程管理 & 服务管理_第5张图片

指令:chkconfig 服务名 --list 查看具体服务
在这里插入图片描述

指令:chkconfig --level n 服务名 开关 设置某服务在运行级别n时是否自启动,开关用on/off 表示
指令:chkconfig 服务名 开关 在所有运行级别,on/off某服务

§2.6 top [动态进程监控 常用性能工具]

指令:top 选项
Linux | 进程管理 & 服务管理_第6张图片

说明:

结果说明
时间行

  • top 当前时间
  • up 上电时间
  • users 当前登录用户数量
  • load average 负载均值

分别 > 0.6 表示系统负载过大

进程统计

  • total 总计进程数
  • running 运行中进程数
  • sleeping 睡眠中进程数
  • stop 停止进程数
  • zombie 闲置/僵尸进程数

CPU 行/交换行

  • us user space,用户占用 cpu率
  • sy sysctl,系统占用 cpu率
  • ni nice,改变过优先级的进程占用CPU的百分比
  • id idolt,空闲CPU率
  • wa wait,IO等待占用CPU的百分比
  • hi Hardware IRQ,硬中断占用CPU的百分比
  • si Software Interrupts,软中断占用CPU的百分比

内存行

  • total 总共
  • used 使用中
  • free 空闲
  • buffers/cache 缓存/缓冲

可用内存 = free + buffers + cache
当交换区 used 数值不断变化时,说明交换区一直在和实际内存进行数据交换,说明内存不够用

字段说明

  • PID:进程id
  • USER:进程所有者
  • PR:进程优先级
  • NI: nice值。负值表示高优先级,正值表示低优先级
  • VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  • RES:进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  • SHR:共享内存大小,单位kb
  • S:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  • %CPU:上次更新到现在的CPU时间占用百分比
  • %MEM:进程使用的物理内存百分比
  • TIME+:进程使用的CPU时间总计,单位1/100秒
  • COMMAND:进程名称(命令名/命令行)

指令选项说明

  • -d:设置刷新频率,单位 秒
  • -p:监控指定进程 ID 的状态
  • -q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行
  • -S:指定累计模式
  • -s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
  • -i:忽略闲置/僵死进程
  • -c:显示整个命令行而不只是显示命令名

指令操作说明
交互

  • Ctrl+L:擦除并且重写屏幕
  • q:退出程序
  • s:变更刷新频率,单位 秒。默认 5秒
  • u:指定用户,只监控此用户的进程
  • k:终止一个进程
  • f:从当前显示中添加或者删除项目
  • F:同 -f
  • o:改变显示项目的顺序
  • O:同 -o
  • W:将当前设置写入~/.toprc文件中
  • r:重新安排一个进程的优先级别,默认值是10

开关

  • m:切换显示内存信息
  • t:切换显示进程和CPU状态信息
  • c:切换显示命令名称和完整命令行
  • l:切换显示平均负载和启动时间信息
  • i:是否忽略闲置和僵死进程
  • S:是否切换累计模式

排序

  • M:按 内存使用率 排序
  • P:以 CPU使用率 排序,默认
  • T:按 时间/累计时间 排序
  • N:按 进程ID 排序


负载均值

  • load average 后三个数字分别代表系统 1min、5min、15min 的负载值
  • 此负载值是多核负载值,需要 除以 系统核数 以获得 系统单核负载均值
  • 通常,以 系统单核负载均值 为参考依据,认为的负载阈值:
    • [0, 0.7] 系统相对空闲,可以安排其他认为
    • [0.7, 1] 比较临界,或即将拥堵
    • [1, 5] 拥堵,需要排除或调优
    • [5, 5+] 极度拥堵,系统会极明显的表现出卡
  • 三个数值需要综合考虑,以把握系统负载的趋势
    • 近期值 大,可能是开始拥堵或一个短期拥堵
    • 远期值 大,可能是之前有一次拥堵或高负载,现在已经好转
    • 三个值都大,基本是拥堵了,需要排除原因

§2.7 netstat [网络进程监控 常用网络监控工具]

指令:netstat 选项
指令:netstat -anp
Linux | 进程管理 & 服务管理_第7张图片

说明:
结果说明

  • Active Internet connections 有源TCP连接
  • Active UNIX domain sockets 有源Unix域套接口,只能用于本机通信,性能可以提高一倍

指令选项说明

  • -a (all)显示所有选项,包括 LISTEN 的进程
  • -t (tcp)仅显示tcp相关选项
  • -u (udp)仅显示udp相关选项
  • -n 拒绝显示别名,能显示数字的全部转化成数字。
  • -l 仅列出有在 LISTEN 的服務状态
  • -p 显示建立相关链接的程序名
  • -r 显示路由信息,路由表
  • -e 显示扩展信息,例如uid等
  • -s 按各个协议进行统计
  • -c 每隔一个固定时间,执行该netstat命令。

本文内容部分来自
Linux top命令详解
Linux netstat命令详解

你可能感兴趣的:(Linux,linux)