zoukankan      html  css  js  c++  java
  • Linux命令

    如果线上某台虚机CPU Load过高,该如何快速排查原因?

    一个应用占用CPU很高,除了是计算密集型应用之外,通常原因都是出了死循环。

    w命令:都有谁,在做什么? 快速了解系统中目前有哪些用户登录着。

    ps命令和top命令:列出运行的进程

    ps:进程的静态列表,用于显示当前系统中的进程,ps命令显示的进程列表不会随时间而更新,是静态的。

    不加任何参数:只显示当前用户在当前终端的进程。

    ps -ef:列出所有进程  ps -ef | less

    ps -efH:以乔木状列出所有进程

    ps -u 用户名:列出此用户运行的进程

    pstree:以树形结构显示进程

    ps -aux:通过CPU和内存使用来过滤进程

    根据CPU使用率来降序排列:    ps -aux --sort -pcpu | less

    根据内存使用率来降序排列:ps -aux --sort -pmem | less

    将CPU和内存合并到一起:ps -aux --sort -pcpu,+pmem | head

    free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。

    top:进程的动态列表,实时监控系统进程

    ps是静态的只能记录当下那一刻的进程列表,ps命令并不能帮助我们实时监控系统的进程

    top:这些进程是按照使用处理器的比率来排序的,top命令无法显示全部进程,只显示一页

    一些按键:q退出  h显示帮助文档  B加粗某些信息  f/F在进程列表中添加或删除某些列,改变进程列表排序所参照的列

        u依照用户来过滤显示  k结束某个进程  s改变刷新页面时间

    系统监控软件:glance

    yum install epel* -y

    yum install python -pip python -devel -y

    yum install glances -y

    htop软件

    yum install -y epel-release

    yum install -y htop

    停止进程:ctrl+C;kill

    ctrl+C:中止终端中正在运行的程序(进程);在终端中拷贝粘贴用ctrl+shift+c,ctrl+shift+v

    kill:结束一个进程,后接需要结束的进程号

      同时结束几个进程,用空格隔开pid即可

      kill -9强制立即结束进程

        killall 接程序名,结束全部进程

    halt和reboot:停止和重启系统

      halt:关闭系统,需要root身份

      reboot:重启系统,需要root身份

      halt和reboot都调用了shutdown命令

      poweroff:关机,不需要root身份就可以运行

      

    管理前后台进程:

    &符号和nohup命令:后台运行进程,可以实现在同一个终端运行好几个命令

    前台进程:默认情况下,用户创建的进程都是前台进程;前台进程从键盘读取数据,并把处理结果输出到显示器

    后台进程的优点是不必等待程序运行结束,就可以输入其他命令,可以与键盘数据无关

    在要运行的命令最后加上&符号:cp file.txt file-copy.txt &  注意空格隔开

      sudo find / -name "*log" &

      sudo find / -name "*log" > output_find &

      sudo find / -name "*log" > output_find 2>&1 &

    &缺点:后台进程与终端相关联,一旦终端关闭或者用户登出,进程就自动结束

    nohup:使进程与终端分离,使得命令不受hangup信号的影响

    nohup cp file.txt file-copy.txt

    ctrl+Z,jobs,bg和fg命令:控制进程的前后台切换

    ctrl+Z:转到后台并暂停运行

    bg:使进程转到后台,将命令转到后台运行;加入后台有暂停的命令,bg会使其进入运行状态;不加任何参数,bg命令会默认作用于最近的一个后台进程;如果后面加%1,%2这样的参数,则会作用于指定编号的进程

    ctrl+Z-->bg:为什么不直接bg,因为如果不先用ctrl+Z将此进程暂停,此进程就一直在前台运行,没法再命令提示符后面输入

    sudo grep -r "log" / > grep_log 2>&1 &

    5种常见的进程状态:

    运行:正在运行会在运行队列中等待,对应的状态码R

    中断:休眠中,受阻,当某个条件形成后或接收到信号时,则脱离该状态,S

    不可中断:进程不响应系统异步信号,即使用kill命令也不能使其中断,D

    僵死:进程已终止,但进程描述符依然存在,直到父进程调用wait4系统函数将进程释放,Z

    通知:进程收到SIGSTOP、SIGSTP、SIGTIN、SIGTOU等停止信号后停止运行,T

    jobs:显示当前终端中的后台进程状态

    fg:使进程转到前台,如果不加参数,作用于最近的一个进程;加%数字,%可以省略

    任务的定时和延期

    date:调节时间

    定制date的输出:date "+%H:%M:%S"   date "+%H时%M分%S秒"

    用date修改系统时间:sudo date 10121430  需要root身份 -->10月12日14点30分

    at:延时执行一个程序,设定一个程序的执行时间

    注意:at只能让程序执行一次

    在指定时刻执行程序:先用at命令后接想要程序执行的确定时刻,再输入想要在以上指定时刻执行的命令

    at 22:10  回车后会进入交互模式,需要输入需要执行的命令     at 22:10 tommorow    at 22:10 12/10/19 月/日/年

    使用ctrl+D结束并退出at命令

    在指定间隔之后执行程序:

    at还有第二种用法,就是在指定时间间隔之后执行程序

    at now +10 minutes 10分钟之后执行       

    atq和atrm命令:列出和删除正在等待执行的at任务

    atq:列出正等待执行的at任务

    atrm:删除正在等待执行的at任务 atrm 后接任务编号

    ;-->用于分隔两个命令,使得命令依次执行

    sleep命令:休息一会

    touch file.txt; sleep 10; rm file.txt  默认为秒

    touch file.txt; sleep 10m; rm file.txt

    &&和||符号  逻辑与和逻辑或

    和分号类似,分隔命令

    区别:&&号前的命令执行成功才会执行后面的命令

       ||号前的命令执行失败才会执行后面的命令

       不论分号前的命令执行成功与否都会执行分号后的命令

    crontab命令:定时执行程序

    可以重复执行命令

    sudo yum install vixie-cron crontabs

    sudo apt install cron

    crontab用于修改crontab文件,cron用于实际执行定时的程序

    参数

    -l:显示crontab文件

    -e:修改

    -r:删除

    https://www.cnblogs.com/lzghyh/p/13035675.html

    https://blog.csdn.net/yushouxiang2014/article/details/82876405  kill -9

  • 相关阅读:
    怎么样通过API函数获取tooltip的内容(请高手帮忙)
    Ajax控件之Accordion控件学习
    C#中结构与类的区别
    C# ref and out 区别
    java 将PDF文件的首页提取为图片
    围住浮动元素(消除浮动)的三种方法
    myeclipse unable to install breakpoint
    C#调用C++编写的COM DLL
    高手教你玩53kf在线客服的指定客服功能
    让IIS支持Flv的详细设置方法
  • 原文地址:https://www.cnblogs.com/liushoudong/p/12490063.html
Copyright © 2011-2022 走看看