zoukankan      html  css  js  c++  java
  • linux操作命令:暂停进程

    周末加班,ssh登录服务器超慢,top查看系统负载,达到12以上。跟踪发现,是其他同事利用周末,跑了一堆程序。

    系统反应慢,怎么办?

    两种办法:

    (一)降低其他用户程序的优先级。

    执行top命令:

    1   PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
    2 20211 lix     20   0 5703m 3.4g 558m S 473.4 43.6 662:41.75 datai
    3  5748 zhangren  20   0  133m  45m 2324 R  56.8  0.6   2572:29 nxagent
    4  2684 kdm       20   0  261m 3380 2184 S   6.3  0.0  45:46.62 kdm_greet
    5 28597 zhangren  30  10 31388 1772 1432 S   6.3  0.0   0:03.75 fuzzyflakes
    6 28610 root      20   0 23292 1596 1092 R   6.3  0.0   0:00.01 top
    7     1 root      20   0 10636   24    0 S   0.0  0.0   0:13.57 init

    解释如下:

    USER : 代表执行者的身份
    PID : 代表这个进程的代号
    PR:代表这个进程可被执行的优先级,其值越小越早被执行
    NI :代表这个进程的nice值
     这里的前面的两个个信息,我们都是比较好容易理解的,但是后面的两个奇怪的信息,一个是PR,一个是NI,这到底是什么东西?相对而言,PR也还是比较好理解的,即进程的优先级,或者通俗点说就是程序被CPU执行的先后顺序,此值越小进程的优先级别越高。那NI呢?就是我们所要说的nice值了,其表示进程可被执行的优先级的修正数值。如前面所说,PR值越小越快被执行,那么加入nice值后,将会使得PR变为:PR(new)=PR(old)+nice。这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行。

    到目前为止,更需要强调一点的是,进程的nice值不是进程的优先级,他们不是一个概念,但是进程nice值会影响到进程的优先级变化。

    修改进程优先级的命令主要有两个:nice,renice

    1、一开始执行程序就指定nice值:nice
    nice -n -5 /usr/local/mysql/bin/mysqld_safe &

    nice 命令详解
     功能说明:设置优先权。
     语  法:nice [-n <优先等级>][--help][--version][执行指令]
    补充说明:nice指令可以改变程序执行的优先权等级。

    参  数:-n<优先等级>或-<优先等级>或–adjustment=<优先等级>  设置欲执行的指令的优先权等级。等级的范围从-20-19,其中-20最高,19最低,只有系统管理者可以设置负数的等级。
    –help  在线帮助。
    –version  显示版本信息。
    —————————————————————————
    2.1、调整已存在进程的nice:renice
    renice -5 -p 5200
    #PID为5200的进程nice设置为-5不是在原值上-5)

     renice 命令详解
     功能说明:调整优先权。
     语  法:renice [优先等级][-g <程序群组名称>...][-p <程序识别码>...][-u <用户名称>...]
     补充说明:renice指令可重新调整程序执行的优先权等级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。等级范围从-20–19,只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。注意:nice值越大,进程优先级值越大,CPU上运行的机会就越小。
    参  数:
    -g <程序群组名称>  使用程序群组名称,修改所有隶属于该程序群组的程序的优先权。
    -p <程序识别码>  改变该程序的优先权等级,此参数为预设值。
    -u <用户名称>  指定用户名称,修改所有隶属于该用户的程序的优先权。

    http://blog.csdn.net/codestinity/article/details/7496962

    我使用如下命令降低某个用户的所有程序的优先级:

    renice +20 -u zhangrenxxxxx

    恢复正常:

    renice 0 -u zhangrenxxxxx

    (二)降低其他用户程序的优先级后,系统负载短时间内还没有降下来,于是尝试:使用skill暂停其他用户的所有进程。

    skill -STOP -u zhangrenxxxx

    暂停用户zhangrenxxxx的所所有进程。

    skill -CONT -u zhangrenxxxxx

    恢复用户zhangrenxxxx的所所有进程。

    参考资料:http://www.jb51.net/LINUXjishu/57935.html

    至此,系统负载回复正常了。

    注意:最后别忘了恢复其他用户程序的正常状态哦。

    linux使用sed截取文件:

    sed -n '起始行号,结束行号p' 文件名

    注意:起始行号是从1开始的,而非0。

    例如:sed -n '1,2000p' a.txt

  • 相关阅读:
    Hbase安装与简单使用
    Integer Int
    Maven是什么
    对Servlet执行流程的初步认识
    android studio 开发环境的搭建
    centos下更换默认的python版本
    写出我心(七)
    写出我心(六)
    写出我心(五)
    写出我心(四)
  • 原文地址:https://www.cnblogs.com/chutianyao/p/2838864.html
Copyright © 2011-2022 走看看