Linux-进程管理

进程查看

  • ps aux
    psprocess status的缩写,也就是进程状态的意思.
    参数信息
    • a:all显示所用进程,不仅显示当前用户启动的进程
    • u:以user为主的格式输出进程信息
    • x:显示当前用户所有终端下的进程
      返回信息
      USERPID %CPU %MEMVSZRSS TTYSTAT STARTTIME COMMAND root10.00.2446723864 ?Ss1月150:02 /usr/lib/syste root20.00.000 ?S1月150:00 [kthreadd] root40.00.000 ?S<1月150:00 [kworker/0:0H]

  • USER 启动该进程的用户
  • PID 进程号
  • %CPU cpu占有率(%)
  • %MEM 内存占有率(%)
  • VSZ 占用虚拟内存(swap空间)的大小
  • RSS 占用常驻内存(物理内存)的大小
  • TTY 进程在哪个终端上运行,?代表未知或不需要终端
  • STAT 表示进程状态
    • S 睡眠
    • R 运行
    • Z 僵死
    • < 高优先级
    • N 低优先级
    • s 父进程
    • + 前台进程
  • START 进程开始的时间
  • TIME 进程执行了多长时间
  • COMMAND 启动该进程的命令
  • ps ef
    参数信息
    • e:显示系统内所有进程的信息
    • f:full使用完整格式显示进程信息
      显示信息
      基本与aux 类似
  • top
    显示信息
    top - 01:25:39 up5:25,4 users,load average: 0.03, 0.06, 0.07 Tasks: 101 total,4 running,97 sleeping,0 stopped,0 zombie %Cpu(s):1.3 us,1.7 sy,0.0 ni, 97.0 id,0.0 wa,0.0 hi,0.0 si,0.0 st KiB Mem :1882012 total,404536 free,199104 used,1278372 buff/cache KiB Swap:0 total,0 free,0 used.1486184 avail Mem PID USERPRNIVIRTRESSHR S %CPU %MEMTIME+ COMMAND 1056 root200511361112772 R0.70.12:33.37 rshim 1 root2004467238642444 S0.00.20:02.64 systemd

    • 第一行,任务队列信息,和uptime命令执行的结果相同
      系统时间: 01:25:39
      运行时间: up 5:25
      当前登录用户: 4 users
      负载均衡: load average: 0.03, 0.06, 0.07 三个数字分别表示 1分钟 5分钟 15分钟的负载
    • 第二行,任务
      Tasks: 101 total, 4 running, 97 sleeping, 0 stopped, 0 zombie 总进程:101 运行:4 休眠:97 停止:0 僵尸进程:0
    • 第三行,cpu占有率
      %Cpu(s): 1.3 us, 1.7 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
      • us - 用户空间(user space):1.3%
      • sy - 内核空间(sysctl):1.7%
      • ni - 改变过优先级的进程(nice):0.0%
      • id - 空闲cpu(idol):97.0%
      • wa - io等待(wait):0.0%
      • hi - 硬中断占用(Hardware IRQ):0.0%
      • si - 软中断占用(Software Interrupts):0.0%
    • 第四行,内存状态
      KiB Mem : 1882012 total, 404536 free, 199104 used, 1278372 buff/cache 总内存量 = 空闲内存 + 被使用内存 + 缓存的内存量
    • 第五行,swap交换分区信息
      KiB Swap: 0 total, 0 free, 0 used. 1486184 avail Mem
      ? linux为了提高读写效率和速度,会将文件在内存中进行缓存,这一部分就是缓存内存cache memory,即使你的程序运行结束后这部分内存也不会被释放,这就导致你的linux系统中程序频繁读写文件后,可用物理内存变少,当变少到物理内存不够用时,就需要物理内存释放出来一部分空间,这部分被释放出来的空间信息会暂时被保留在swap空间当中,等到程序要运行需要这部分数据时,再从Swap分区中将其恢复到内存当中,所以当Swapused值在频繁变化时,就说明此时,系统的物理内存不够用了.
      • 第六行,字段含义与ps aux基本相似
        top -p 进程pid 可以只看对应pid的进程信息
    进程控制进程优先级控制
    nice -n 10 XXX: 将xxx进程启动时使用nice命令可以设置它的优先级为10,这个数值的范围是(-20~19),数值越小,优先级越高.
    renice -n -20 17265:将pid = 17265的进程的优先级重新设置为-20
    进程作业控制
    ./xxx.sh & 将要启动的进程,后台运行.
    jobs 可以查看后台运行的进程.
    [2]+ 运行中 nice -n 10 ./minio server /data/minio.data/ &
    fg 2 : fg + jobs编号将进程提到前台.
    ctrl + z : 将进程变为停止状态.
    bg 2 : bg + jobs编号后台运行这个程序.
    服务管理工具servicesystemctlLinux管理服务的两种方式.
  • service实际上是去/etc/init.d目录下去执行相关程序
    service redis start 等同于 /etc/init.d/redis start

    service xxx start 开启服务
    service xxx stop 关闭服务
    service xxx restart 重启服务
    service xxx status 查看服务状态
  • systemctlLinux最新的初始化系统init,作用是提高系统的启动速度,systemctl也兼容service命令,即systemctl也会到init.d目录下去执行相关程序.
    systemctl start xxx开启服务
    systemctl stop xxx 关闭服务
    systemctl restart xxx 重启服务
    systemctl status xxx 查看服务状态
    systemctl reload xxx 重新加载服务
    systemctl enable xxx 开机启动服务
    【Linux-进程管理】systemctl disable xxx 开机停止服务

    推荐阅读