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

  • 相关阅读:
    A1066 Root of AVL Tree (25 分)
    A1099 Build A Binary Search Tree (30 分)
    A1043 Is It a Binary Search Tree (25 分) ——PA, 24/25, 先记录思路
    A1079; A1090; A1004:一般树遍历
    A1053 Path of Equal Weight (30 分)
    A1086 Tree Traversals Again (25 分)
    A1020 Tree Traversals (25 分)
    A1091 Acute Stroke (30 分)
    A1103 Integer Factorization (30 分)
    A1032 Sharing (25 分)
  • 原文地址:https://www.cnblogs.com/chutianyao/p/2838864.html
Copyright © 2011-2022 走看看