Linux proc信息说明

合集下载

linux proc文件夹介绍

linux proc文件夹介绍

/proc/stat 所有的CPU活动信息
/proc/sysrq-trigger 使用echo命令来写这个文件的时候,远程root用户可以执行大多数的系统请求关键命令,就好像在本地终端执行一样。要写入这个文件,需要把/proc/sys/kernel/sysrq不能设置为0。这个文件对root也是不可读的
/proc/irq 中断请求设备信息
/proc/net 网卡设备信息
/proc/scsi scsi设备信息
/proc/tty tty设备信息
/proc/net/dev 显示网络适配器及统计信息
/proc/vmstat 虚拟内存统计信息
/proc/vmcore 内核panic时的内存映像
除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。
2. 子文件或子文件夹
/proc/buddyinfo 每个内存区中的每个order有多少块可用,和内存碎片问题有关
/proc/kcore 代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb
/proc/kmsg 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理
/proc/loadavg 根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关
Linux下/proc目录简介
1. /proc目录
Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

Linux 终端

Linux 终端


If HUPCL is set, when the terminal driver detects that the last file descriptor referring to the terminal has been closed, it will set the modem control lines to “hang-up” the line.
� � � � � � � � � � � � � OPOST: Turn on output processing ONLCR: Convert any output newline to a carriage return/line feed pair OCRNL: Convert any output carriage return to a newline ONOCR: No carriage return output in column 0 ONLRET: A newline also does a carriage return(Don't output CR) OFILL: Send fill characters to provide delays OFDEL: Use DEL as a fill character, rather than NULL NLDLY: Newline delay selection CRDLY: Carriage return delay selection TABDLY: Tab delay selection BSDLY: Backspace delay selection VTDLY: Vertical tab delay selection FFDLY: Form feed delay selection

Linux中proc目录下文件详解

Linux中proc目录下文件详解
示例:
[root@localhost ~]# cat /proc/loadavg 0.11 0.16 0.14 3/126 3912
-------------------------------------------------------------------------------/proc/locks 文件 这个文件包含在打开的文件上的加锁信息。文件中的每一行描述了特定文件和文档上的加锁信息以及对文 件施加的锁的类型。内核也可以需要时对文件施加强制性锁。 示例: [root@localhost redhat]# cat /proc/locks 1: POSIX ADVISORY READ 3822 03:0a:1067117 0 EOF 2: POSIX ADVISORY READ 3822 03:0a:1067138 0 EOF 3: POSIX ADVISORY WRITE 3326 03:0a:2326540 0 EOF 4: POSIX ADVISORY WRITE 2639 03:0a:2966595 0 EOF 5: FLOCK ADVISORY WRITE 2591 03:0a:2966586 0 EOF 6: POSIX ADVISORY WRITE 2540 03:0a:2966578 0 EOF 7: POSIX ADVISORY WRITE 2530 03:0a:2966579 0 EOF 8: POSIX ADVISORY WRITE 2402 03:0a:2966563 0 EOF 9: POSIX ADVISORY WRITE 2371 03:0a:2966561 0 EOF --------------------------------------------------------------------------------

Linux查看进程的内存占用情况

Linux查看进程的内存占用情况

Linux查看进程的内存占用情况1、toptop命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Wi ndows的任务管理器内容解释:PID:进程的IDUSER:进程所有者PR:进程的优先级别,越小越优先被执行NInice:值VIRT:进程占用的虚拟内存RES:进程占用的物理内存SHR:进程使用的共享内存S:进程的状态。

S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数%CPU:进程占用CPU的使用率%MEM:进程使用的物理内存和总内存的百分比TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

COMMAND:进程启动命令名称常用的命令:P:按%CPU使用率排行T:按MITE+排行M:按%MEM排行2、/proc/pid测量一个进程占用了多少内存,linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息说明:/proc/N pid为N的进程信息/proc/N/cmdline 进程启动命令/proc/N/cwd 链接到进程当前工作目录/proc/N/environ 进程环境变量列表/proc/N/exe 链接到进程的执行命令文件/proc/N/fd 包含进程相关的所有的文件描述符/proc/N/maps 与进程相关的内存映射信息/proc/N/mem 指代进程持有的内存,不可读/proc/N/root 链接到进程的根目录/proc/N/stat 进程的状态/proc/N/statm 进程使用的内存的状态/proc/N/status 进程状态信息,比stat/statm更具可读性/proc/self 链接到当前正在运行的进程3、pmappmap命令可以显示一个或多个进程所使用的内存数量。

你可以使用这个工具来了解服务器上的某个进程分配了多少内存,并以此来判断这是否是导致内存瓶颈的原因。

要得到更加详细的信息,使用pmap-d选项。

Linux内存泄漏查询方法procstatus解释

Linux内存泄漏查询方法procstatus解释

Linux内存泄漏查询方法procstatus解释在测试,特别是性能测试或者系统的稳定性测试中,内存的使用情况是一个很重要的监控点,不管是从资源使用的角度还是从发现内存泄露问题的角度。

如果笼统的来看,大概就是两个指标,系统的内存使用率和进程使用的内存。

但是现实世界的事情往往没有那么简单,稍微细一点来看其实有很多的科目。

本文不是一个全面的关于内存使用的探讨,甚至也不是一个详细的Linux下面进程内存使用情况的分析,尽管这里的实践是基于此的。

这里想做的是稍微细节一点的来看Linux下一个进程的内存使用情况,包括栈和堆。

首先我们从一个简单的C程序开始。

且慢,先说一下我试验的环境。

platform: CentOS release 5.6 (Final) Linux localhost.localdomain 2.6.18-238.19.1.el5xen #1 SMP Fri Jul 15 08:57:45 EDT 2011 i686 i686 i386 GNU/Linuxgcc version 4.1.2 20080704 (Red Hat 4.1.2-50)[root@localhost test]# cat simple_hello.c#include <stdio.h>int main(){int i,m = 1024, n = 0, x;int a[m];printf("assign %d values to a[%d]...\n", n, m);for (i = 0; i < n; i++){a[i] = 100;}printf("valueassigned.\n");scanf("%d", &x); /* to hold program.. */return 0;}真是一个很简单的程序,只比hello world复杂一点点。

linuxprocinfo(processinformation)命令详解

linuxprocinfo(processinformation)命令详解

linuxprocinfo(processinformation)命令详解linux procinfo(process information) 命令详解
功能说明:显⽰系统状态。

语 法:procinfo [-abdDfhimsSv][-F <输出⽂件>][-n <间隔秒数>]
补充说明:procinfo指令从/proc⽬录⾥读取相关数据,将数据妥善整理过后输出到标准输出设备。

参 数:
-a 显⽰所有信息。

-b 显⽰磁盘设备的区块数⽬,⽽⾮存取数⽬。

-d 显⽰系统信息每秒间的变化差额,⽽⾮总和的数值。

本参数必须配合"-f"参数使⽤
-D 此参数效果和指定"-d"参数类似,但内存和交换⽂件的信息为总和数值。

-f 进⼊全画⾯的互动式操作界⾯。

-F<输出⽂件> 把信息状态输出到⽂件保存起来,⽽⾮预设的标准输出设备。

-h 在线帮助。

-i 显⽰完整的IRP列表。

-m 显⽰系统模块和外围设备等相关信息。

-n间隔秒数> 设置全画⾯互动模式的信息更新速度,单位以秒计算。

-s 显⽰系统的内存,磁盘空间,IRP和DMA等信息,此为预设值。

-S 搭配参数"-d"或"-D"使⽤时,每秒都会更新信息,不论是否有使⽤参数"-n"。

-v 显⽰版本信息。

proc 文件系统


该函数将创建一个目录,父目录为parent。
proc文件系统的编程接口
删除节点(文件或者目录)remove_proc_entry()
void remove_proc_entry ( const char *name, struct proc_dir_entry *parent)
该函数将删除一个proc节点(按文件名删除)。
proc文件系统的编程接口
以上五个创建节点的函数在内核中的实现流程:
通过proc_create为结构申请空间,并进行一些初始化工 作。 proc_register则进一步填写结构中的域。并完成注册工作
删除节点的函数在内核中的实现流程:
则是先调用clear_bit和proc_kill_inodes,注销inode结构 ,如果引用数为0,则调用free_proc_entry释放结构对应 的空间;否则置一个删除标志,不释放空间
proc文件系统的编程接口
创建设备文件proc_mknod()
struct proc_dir_entry *proc_mknod( const char *name, mode_t mode, struct proc_dir_entry *paren建一个名字为name的设 备文件,文件类型和权限为mode,设备号为rdev 。
操作系统 课程设计
proc 文件系统
proc
proc 文件系统是 Linux 中的特殊文件系统,提供 中的特殊文件系统, 给用户一个可以了解内核内部工作过程的可读窗 口,在运行时访问内核内部数据结构、改变内核 在运行时访问内核内部数据结构、 设置的机制。 设置的机制。
保存系统当前工作的特殊数据,但并不存在于任何物 理设备中; 对其进行读写时,才根据系统中的相关信息即时生成 ;或映射到系统中的变量或数据结构; proc 被称为‘伪文件系统’; 其挂接目录点固定为/proc; ‘man proc’ 进行了详细说明。

Linux操作系统查看内存信息的命令

Linux操作系统查看内存信息的命令Linux操作系统的内存使用情况我们可以通过命令来知道。

下面由店铺为大家整理了Linux操作系统查看内存信息的命令的详细介绍,希望对大家有帮助!Linux操作系统查看内存信息的命令1. /proc/meminfo查看RAM使用情况最简单的方法是通过/proc/meminfo。

这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。

/proc/meminfo列出了所有你想了解的内存的使用情况。

进程的内存使用信息也可以通过/proc/<pid>/statm 和 /proc/<pid>/status 来查看。

$ cat /proc/meminfo2. atopatop命令是一个终端环境的监控命令。

它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。

$ sudo atop3. freefree命令是一个快速查看内存使用情况的方法,它是对/proc/meminfo 收集到的信息的一个概述。

$ free -h4. GNOME System MonitorGNOME System Monitor 是一个显示最近一段时间内的CPU、内存、交换区及网络的使用情况的视图工具。

它还提供了一种查看CPU及内存使用情况的方法。

$ gnome-system-monitor5. htophtop命令显示了每个进程的内存实时使用率。

它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。

列表可以水平及垂直滚动。

$ htop6. KDE System Monitor功能同 4 中介绍的GENOME版本。

$ ksysguard7. memstatmemstat是一个有效识别executable(s), process(es)and shared libraries使用虚拟内存情况的命令。

Linux文件系统下proc目录详解

Linux中/proc目录下文件详解(2008-7-20 15:54)Linux中/proc目录下文件详解(一)--------------------------------------------------------------------------------/proc文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。

可以使用的文件随系统配置的变化而变化。

命令procinfo能够显示基于其中某些文件的多种系统信息。

以下详细描述/proc下的文件。

--------------------------------------------------------------------------------/proc/cmdline文件这个文件给出了内核启动的命令行。

它和用于进程的cmdline项非常相似。

示例:[root@localhost proc]# cat cmdlinero root=LABEL=/ rhgb quiet--------------------------------------------------------------------------------/proc/cpuinfo文件这个文件提供了有关系统CPU的多种信息。

这些信息是从内核里对CPU的测试代码中得到的。

文件列出了CPU的普通型号(386,486,586,686等),以及能得到的更多特定信息(制造商,型号和版本)。

文件还包含了以bogomips表示的处理器速度,而且如果检测到CPU的多种特性或者bug,文件还会包含相应的标志。

这个文件的格式为:文件由多行构成,每行包括一个域名称,一个冒号和一个值。

示例:[root@localhost proc]# cat cpuinfoprocessor : 0vendor_id : AuthenticAMDcpu family : 6model : 8model name : AMD Athlon(tm) XP 1800+stepping : 1cpu MHz : 1530.165cache size : 256 KBfdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : nofpu : yesfpu_exception : yescpuid level : 1wp : yesflags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnowbogomips : 2998.27--------------------------------------------------------------------------------/proc/devices文件这个文件列出字符和块设备的主设备号,以及分配到这些设备号的设备名称。

linux中proc详解

linux中proc详解Linux-procproc ⽂件系统在Linux中有额外的机制可以为内核和内核模块将信息发送给进程-- /proc ⽂件系统。

最初设计的⽬的是允许更⽅便的对进程信息进⾏访问(因此得名),现在它被每⼀个有有趣的东西报告的内核使⽤,例如/proc/modules 有模块的列表/proc/meminfo 有内存使⽤的统计表。

使⽤proc ⽂件系统的⽅法和使⽤设备驱动程序⾮常相似--创建⼀个/proc ⽂件需要的所有信息的结构,包括任何处理函数的指针(在我们的例⼦中只有⼀个,当某⼈试图从/proc ⽂件读时调⽤的那⼀个)。

然后,init_module 在内核中登记该结构⽽cleanup_module 注销它。

我们使⽤proc_register_dynamic(这是在2.0 版中的情况,在2.2 版中如果我们将节点设置为0系统将⾃动为我们做到) 的原因是我们不想预先决定我们的⽂件的节点数字,⽽是为防⽌冲突⽽由内核决定它。

通常的⽂件系统存在于磁盘上⽽不是内存中(/proc 在内存中),在这中情况下,节点数是是指向⽂件的索引节点所在的磁盘位置的指针。

节点包含⽂件的信息(例如⽂件的存取权限)和指向磁盘位置或⽂件数据可以被找到的⼏个位置的指针。

因为当⽂件被打开或关闭的时候不能得到调⽤,所以在这个模块中没有地⽅放置MOD_INC_USE_COUNT 和MOD_DEC_USE_COUNT,并且,如果⽂件被打开随后模块被移除,我们没有办法避免后果。

在下⼀章我们会看到⼀个艰难的但更灵活的可以处理/proc⽂件的实现⽅式,它也可以让我们防⽌那个问题。

/os/201202/119552.htmlLinux 内核提供了⼀种通过/proc ⽂件系统,在运⾏时访问内核内部数据结构、改变内核设置的机制。

尽管在各种硬件平台上的Linux 系统的/proc ⽂件系统的基本概念都是相同的,但本⽂只讨论基于intel x86 架构的Linux /proc ⽂件系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux /proc信息说明
cd /proc/之后,你会发现很多的目录和文件,今天首先来介绍的就是那些以数字命名的目录--它们就是linux中的进程号,每当你创建一个进程时,里面就会动态更新多出一个名称为pid的目录,然后你ls -l /proc/pid会发现如下信息:
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 cpuset
lrwxrwxrwx 1 user group 0 Sep 19 16:17 cwd ->
/home/user/zbs/mysql/node-2
-r-------- 1 user group 0 Sep 19 16:17 environ
lrwxrwxrwx 1 user group 0 Sep 19 16:17 exe ->
/home/user/zbs/xtradb-5.1.47_group/libexec/mysqld
dr-x------ 2 user group 0 Sep 18 14:38 fd
dr-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 mountstats
dr-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 personality
lrwxrwxrwx 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 syscall
dr-xr-xr-x 20 user group 0 Sep 19 16:17 task
下面我们挑常用的来解释(用红色标注出)
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 manyopenfiles的错误,这个就是打开太多的文件导致的,当然你如果只修改mysql里面的参数可能不会起作用,因为可能os上设置了一个比较小的数,所以要两者都调大。

fdinfo:跟上面一个一样,只不过只有文件描述符的值,没有表示这个文件描述符是对应打开的哪个文件。

在/proc很多时候都是这样维护的:可能两个文件里面要表示的信息是一样的,但是有一个一般是以人能容易读懂的格式给出。

limits:这个跟fd有一点关联,因为这个里面限制了进程对系统资源的使用额度,比如前面说的你可以打开多少文件,具体的设定你可以修改这个文件
/etc/securiry/limits.conf,里面也对每一项说得很清楚,只要会点E文,理解应该没问题
oom_adj/oom_score:这两个与linux的OOM机制有关的文件,oom_adj 相当于一个因子,它值越大,在OOM时更容易被系统kill掉,但最终决定是否被kill 的是oom_score,其实计算这个oom_score时,就是根据oom_adj来的,oom_adj 更大,计算出来的oom_score就更大,也能容易在OOM时被系统kill掉。

当然如果是很重要的服务现场,为了避免出现这种情况设置oom_adj=-17就行,表示永远不会因为OOM被kill。

stat/status:这两者要表示的信息都是一样的,进程的基本状态。

相关文档
最新文档