Linux-进程管理

进程查看

  • ps aux
    psprocess status的缩写,也就是进程状态的意思.
    参数信息

    • a:all显示所用进程,不仅显示当前用户启动的进程
    • u:以user为主的格式输出进程信息
    • x:显示当前用户所有终端下的进程
      返回信息

      USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
      root         1  0.0  0.2  44672  3864 ?        Ss   1月15   0:02 /usr/lib/syste
      root         2  0.0  0.0      0     0 ?        S    1月15   0:00 [kthreadd]
      root         4  0.0  0.0      0     0 ?        S<   1月15   0: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 up  5: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 USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND   
     1056 root      20   0   51136   1112    772 R  0.7  0.1   2:33.37 rshim        
        1 root      20   0   44672   3864   2444 S  0.0  0.2   0: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 开机启动服务

    systemctl disable xxx 开机停止服务

你可能感兴趣的:(Linux-进程管理)