/proc/$PID目录下信息
来源:互联网 发布:室内设计网站 知乎 编辑:程序博客网 时间:2024/06/07 13:29
cd /proc/之后,你会发现很多的目录和文件,每当你创建一个进程时,里面就会动态更新多出一个名称为pid的目录,然后你ls -l /proc/pid会发现如下信息:
<span style="font-size:14px;">dr-xr-xr-x 2 user group 0 Sep 19 16:17 attr-r-------- 1 user group 0 Sep 19 16:17 auxv-r--r--r-- 1 user group 0 Sep 19 16:17 cgroup--w------- 1 user group 0 Sep 19 16:17 clear_refs-r--r--r-- 1 user group 0 Sep 18 14:18 cmdline-rw-r--r-- 1 user group 0 Sep 19 16:17 coredump_filter-r--r--r-- 1 user group 0 Sep 19 16:17 cpusetlrwxrwxrwx 1 user group 0 Sep 19 16:17 cwd -> /home/user/zbs/mysql/node-2-r-------- 1 user group 0 Sep 19 16:17 environlrwxrwxrwx 1 user group 0 Sep 19 16:17 exe -> /home/user/zbs/xtradb-5.1.47_group/libexec/mysqlddr-x------ 2 user group 0 Sep 18 14:38 fddr-x------ 2 user group 0 Sep 19 16:17 fdinfo-r-------- 1 user group 0 Sep 19 16:17 io-r-------- 1 user group 0 Sep 19 16:17 limits-rw-r--r-- 1 user group 0 Sep 19 16:17 loginuid-r--r--r-- 1 user group 0 Sep 19 16:17 maps-rw------- 1 user group 0 Sep 19 16:17 mem-r--r--r-- 1 user group 0 Sep 19 16:17 mountinfo-r--r--r-- 1 user group 0 Sep 19 16:17 mounts-r-------- 1 user group 0 Sep 19 16:17 mountstatsdr-xr-xr-x 10 user group 0 Sep 19 16:17 net-r--r--r-- 1 user group 0 Sep 19 16:17 numa_maps-rw-r--r-- 1 user group 0 Sep 19 16:17 oom_adj-r--r--r-- 1 user group 0 Sep 19 16:17 oom_score-r--r--r-- 1 user group 0 Sep 19 16:17 pagemap-r--r--r-- 1 user group 0 Sep 19 16:17 personalitylrwxrwxrwx 1 user group 0 Sep 19 16:17 root -> /-rw-r--r-- 1 user group 0 Sep 19 16:17 sched-r--r--r-- 1 user group 0 Sep 19 16:17 sessionid-r--r--r-- 1 user group 0 Sep 19 16:17 smaps-r--r--r-- 1 user group 0 Sep 19 16:17 stack-r--r--r-- 1 user group 0 Sep 18 14:18 stat-r--r--r-- 1 user group 0 Sep 18 14:18 statm-r--r--r-- 1 user group 0 Sep 18 14:18 status-r--r--r-- 1 user group 0 Sep 19 16:17 syscalldr-xr-xr-x 20 user group 0 Sep 19 16:17 task</span>
下面我们挑常用的来解释(用红色标注出)
cmdline:这个主要是当前这个进程被运行时的command line,里面包括了运行时指定的一些参数,比如如果是mysqld的话就包括basedir==,datadir==,port=,socket=等等信息,你可以自己尝试一下。
cwd:current working directory,当前的工作目录
environ:这是个比较有用的文件,里面记录了当前进程的一些环境变量,比如一台机器上对同一个系统起多个实例(当然是不同端口、不同数据目录),而你想知道哪个进程对应的是在哪个数据目录起来的(可能是因为你想kill-9其中一个实例,因为你怕弄错,所以的确定哪个进程是对应哪个数据目录),那么此时你该怎么办呢?两者方法:1.strings /proc/pid/environ | grep PWD 2.tr \\0 \\n < /proc/pid/envrion | grep PWD 即可。当然里面还有很多的信息,你可以自己尝试。
exe:这个就是气这个进程的执行文件
fd:进程打开的文件描述符,我记得以前有人使用mysql遇到过two many openfiles的错误,这个就是打开太多的文件导致的,当然你如果只修改mysql里面的参数可能不会起作用,因为可能os上设置了一个比较小的数,所以要两者都调大。
fdinfo:跟上面一个一样,只不过只有文件描述符的值,没有表示这个文件描述符是对应打开的哪个文件。在/proc很多时候都是这样维护的:可能两个文件里面要表示的信息是一样的,但是有一个一般是以人能容易读懂的格式给出。
limits:这个跟fd有一点关联,因为这个里面限制了进程对系统资源的使用额度,比如前面说的你可以打开多少文件,具体的设定你可以修改这个文件/etc/securiry/limits.conf,里面也对每一项说得很清楚,只要会点E文,理解应该没问题
oom_adj/oom_score:这两个与linux的OOM机制有关的文件(关于OOM请看这里),oom_adj相当于一个因子,它值越大,在OOM时更容易被系统kill掉,但最终决定是否被kill的是oom_score,其实计算这个oom_score时,就是根据oom_adj来的,oom_adj更大,计算出来的oom_score就更大,也能容易在OOM时被系统kill掉。当然如果是很重要的服务现场,为了避免出现这种情况设置oom_adj=0就行,表示永远不会因为OOM被kill。
stat/status:这两者要表示的信息都是一样的,进程的基本状态,但是后一个是以人容易读懂的格式给出,怎么分析前者stat的内容--- /proc/$PID目录下信息
- /proc/pid下的相应信息说明
- /proc/pid下的相应信息说明
- /proc/pid下的相应信息说明
- /proc/pid下的相应信息说明
- Linux /proc/pid目录下相应文件的信息说明和含义
- Linux /proc/pid目录下相应文件的信息说明和含义
- Linux下进程信息/proc/pid/status的深入分析
- /proc 目录调试信息
- 进程内存信息 /proc/[pid]/maps /proc/[pid]/smaps /proc/[pid]/status
- linux查看cpu ,内存,硬盘的信息,proc目录下
- linux /proc/pid进程信息说明
- linux /proc/pid/maps 信息分析
- linux /proc/pid/maps 信息分析
- linux /proc/pid进程信息说明
- linux /proc/pid/maps 信息分析
- 通过/proc/pid./status查看进程信息
- linux /proc/pid/maps 信息分析
- libvirt编译运行问题总结
- android:process属性说明
- ssh框架搭建,
- iOS 使用CoreLocation定位
- [云计算] 云计算之 PaaS详解
- /proc/$PID目录下信息
- Java注解简单介绍
- CocoaPods安装和使用教程
- 向量和矩阵的范数
- java final
- 数据结构(三)递归算法
- eclipse启动不了 java was started but returned exit code=13
- android.content.res.Resources$NotFoundException: String resource ID #0x0的解决
- Android 语法(性能优化)——SparseArray(稀疏数组)——》代替HashMap