linux 查看占用swap进程比较大的PID

#!/bin/bash

echo -e "PID\t\tSwap\t\tProc_Name"

for pid in `ls -l /proc | grep ^d | awk ‘{ print $9 }‘| egrep -v [a-z]+`
do
        #进程id是1为祖进程
        if [ $pid -eq 1 ];then continue;fi # Do not check init process
        # 判断改进程是否占用了swap
        grep -q "Swap" /proc/$pid/smaps 2>/dev/null
        if [ $? -eq 0 ];then    # 如果占用了swap
                swap=$(grep Swap /proc/$pid/smaps | gawk ‘{ sum+=$2;} END{ print sum }‘)
                proc_name=$(ps aux | grep -w "$pid" | grep -v grep | awk ‘{ for(i=11;i<=NF;i++){ printf("%s ",$i); }}‘)
                if [ $swap -gt 0 ];then # 如果占用了swap则输出其信息
                        echo -e "$pid\t${swap}\t$proc_name"
                fi
        fi
done | sort -k2 -n | gawk -F‘\t‘ ‘{     # 按占用swap的大小排序,再用awk实现单位转换。
# 如:将1024KB转换成1M。将1048576KB转换成1G,以提高可读性。
        pid[NR]=$1;
        size[NR]=$2;
        name[NR]=$3;
}
END{
        for(id=1;id<=length(pid);id++)
        {
            if(size[id]<1024)
                  printf("%-10s\t%15sKB\t%s\n",pid[id],size[id],name[id]);
            else if(size[id]<1048576)
                  printf("%-10s\t%15.2fMB\t%s\n",pid[id],size[id]/1024,name[id]);
            else
                  printf("%-10s\t%15.2fGB\t%s\n",pid[id],size[id]/1048576,name[id]);
        }
}‘
时间: 2024-08-04 12:42:28

linux 查看占用swap进程比较大的PID的相关文章

Linux查看占用swap的进程脚本

#!/bin/bash ############################################################################### 脚本功能 : 列出正在占用swap的进程.############################################################################### echo -e "PID\t\tSwap\t\tProc_Name" # 拿出/proc目录下所有以数字

linux查看占用内存/cpu最高的进程情况

linux查看占用cpu最高的进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head 或者top (然后按下M,注意这里是大写) linux查看占用内存最高的进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head 或者top (然后按下P,注意这里是大写) 该命令组合实际上是下面两句命令: ps aux|head -1 ps aux|grep -v PID|sort -rn -k

linux 查看并终止进程

1,查看端口被那个进程占用 例如: netstat -anp | grep 1160 ps:查看端口1169被那个进程占用. 2,查找进程 例如 :ps -ef | grep 'tomcat' ps:查找出进程名里含有 tomcat的进程 3,终止进程 一般终止进程的方法是如: kill 8080 ps:终止进程号为8080的进程 如果上面的命令终止不了进程可以使用 killall命令进程终止 如:killall -KILL 8080 ps:强制终止进程号为8080的进程 linux 查看并终止

Linux 查看磁盘容量、查找大文件、查找大目录

Linux 查看磁盘容量.查找大文件.查找大目录 磁盘统计 查看磁盘使用情况 df -h 文件统计 查找/home 目录下大于800M的文件 find /home -type f -size +800M 查找/home 目录下大于800M的文件,并且使用ls -l 命令输出详细信息 find /home -type f -size +800M -print0|xargs -0 ls -l 查找/home 目录下大约800M的文件,并且使用du -h 命令输出文件的大小 find /home -t

Linux查看端口、进程情况及kill进程

看端口: ps -aux | grep tomcat 发现并没有8080端口的Tomcat进程. 使用命令:netstat –apn 查看所有的进程和端口使用情况.发现下面的进程列表,其中最后一栏是PID/Program name 发现8080端口被PID为9658的Java进程占用. 进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看 就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉! 方法二:直接使用 n

如何用DOS命令查看占用某端口的程序及PID号

果学过JSP编程的朋友可以会发现,若用Eclipse运行JSP文件时常常会弹出某某端口正在使用,从而导致代码无法运行.如何查找出特定端口的使用情况以及对应的程序呢,针对该问题,本文介绍利用DOS命令查看占用特定端口的程序: 工具/原料 电脑一台(本文以win7系统的电脑为例,其它系统一样!): 方法/步骤 1 按快捷键“win+R”,输入cmd后按回车进入DOS环境: 2 查看特定端口的使用情况:以80端口为例,输入命令“ netstat  -aon|findstr  "80" ”后按

linux 查看占用内存/CPU最多的进程

可以使用一下命令查使用内存最多的5个进程 ps -aux | sort -k4nr | head -n 5 或者 top (然后按下M,注意大写) 可以使用一下命令查使用CPU最多的5个进程 ps -aux | sort -k3nr | head -n 5 或者 top (然后按下P,注意大写)

Linux查看和结束进程命令详解

在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过 kill .killall.pkill.xkill 等进行. ------------------------------------------------------------------- 先看两个例子: 例子一:结束某个程序,如Firefox 键入命令: pkill firefox 例子二: 结束某个进程,如find 先用ps命令来查看该进程对应的PID. 键入ps,显示如下: PID TTY TIME COMMAND

Linux 查看和删除进程

1. 在 LINUX 命令平台输入 1-2 个字符后按 Tab 键会自动补全后面的部分(前提是要有这个东西,例如在装了 tomcat 的前提下, 输入 tomcat 的 to 按 tab).2. ps 命令用于查看当前正在运行的进程.grep 是搜索例如: ps -ef | grep java表示查看所有进程里 CMD 是 java 的进程信息ps -aux | grep java-aux 显示所有状态ps3. kill 命令用于终止进程例如: kill -9 [PID]-9 表示强迫进程立即停