linux常见运维命令

PU、内存、进程、磁盘、网络,这五大运维系统的运行状态,
需要掌握的运维命令有

ls、ps、free、top、uptime、ifconfig、su/sudo、dmesg、iostat、vmstat、sar、htop、iotop、smem等命令。

-----------------------------------------------------------------------------------------------------
smem内存工具:

[root@localhost ~]# yum install epel-release
[root@localhost ~]# yum install smem python-matplotlib python-tk

smem -k -s uss
smem -p -s uss smem还支持以百分比形式显示每个进程占用系统内存的比率
smem -u -k 系统中每一个用户的内存使用情况

首先,获取当前系统占用CPU最高的前10个进程最简单的方式是通过ps命令组合实现,例如:

[root@localhost ~]# ps aux|head -1;ps aux|sort -rn -k3|head -10
清除僵尸过程
一个僵尸进程产生的过程是:父进程调用fork创建子进程后,子进程运行直至其终止,它立即从内存中移除,但进程描述符仍然保留在内存中。

要查找系统中的僵尸进程,有多种方法,这里给出一种命令行探测僵尸进程的方法:

[root@localhost ~]# ps -e -o stat,ppid,pid,cmd | egrep  '^[Zz]'Z    10808 10812 [java] <defunct>

介绍下几个参数:

-e:参数用于列出所有的进程

-o:参数用于设定输出格式,这里只输出进程的stat(状态信息)、ppid(父进程pid)、pid(当前进程的pid),cmd(即进程的可执行文件。

egrep:是linux下的正则表达式工具

'^[Zz]':这是正则表达式,^表示第一个字符的位置,[Zz],表示小写z或者大写的Z字母,即表示第一个字符为Z或者z开头的进程数据,只所以这样是因为僵尸进程的状态信息以Z或者z字母开头。

找到僵尸进程的pid后,直接通过”kill -9 pid“命令杀掉即可,但是如果僵尸进程很多的话,就会很繁琐,因此,还需要一个批量删除僵尸进程的办法:

[root@localhost ~]# ps -e -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9

这是个命令组合,通过管道实现命令的组合应用。

“grep -e”相当于egrep命令。

“awk '{print $2}' ”是将前面命令的输出信息进行过滤,仅仅输出第二列的值,而第二列就是进程的ppid。

“xargs kill -9”这是将得到的ppid传给“kill -9”作为参数,也就是kill掉这些ppid。xargs命令可以将标准输入转成各种格式化的参数,这里是将管道的输出内容作为参数传递给kill命令。

杀掉僵尸进程,这个是治标不治本的。真正的办法是,不让它产生。那么如何避免僵尸进程的产生呢?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章