/proc下的字文件及子文件夾的解釋:
/proc 文件系統(tǒng)是 GNU/Linux 特有的。它是一個(gè)虛擬的文件系統(tǒng),因此在該目錄中的所有文件都不會(huì)消耗磁盤空間。通過(guò)它能夠非常簡(jiǎn)便地了解系統(tǒng)信息,尤其是其中的大部分文件是人類可閱讀的(不過(guò)還是需要一些幫助)。許多程序?qū)嶋H上只是從 /proc 的文件中收集信息,然后按照它們自己的格式組織后顯示出來(lái)。有一些顯示進(jìn)程信息的程序(top、ps 等)就是這么作的。/proc 還是了解您系統(tǒng)硬件的好去處。就象那些顯示進(jìn)程信息的程序一樣,不少程序只是提供了獲取 /proc 中信息的接口。其中還有一個(gè)特殊的子目錄:/proc/sys。它讓您能夠顯示內(nèi)核參數(shù)并更改它們,而且這一更改將立即生效。
./acpi : 高級(jí)電源管理;
./asound : 聲卡配置文件;
buddyinfo :
內(nèi)存管理的信息,主要用來(lái)分析內(nèi)存碎片的,內(nèi)存分為 2個(gè)區(qū)域,DMA,DMA32 ,如果分頁(yè)大小為4K,那我們可以分區(qū)域來(lái)看:
DMA:? ? 有6塊1頁(yè)大小的空間、2塊2頁(yè)大小的空間,3塊4頁(yè)大小的空間,6塊8頁(yè)大小的空間。。。。。。
以此類推,越是往后的空間,就越是連續(xù),數(shù)目越多,就代表這個(gè)大小的連續(xù)空間越多,當(dāng)大的連續(xù)空間很少的時(shí)候,也就說(shuō)明,內(nèi)存碎片已經(jīng)非常多了。
此外可以這樣理解:
Node表示在NUMA環(huán)境下的節(jié)點(diǎn)號(hào),這里只有一個(gè)節(jié)點(diǎn)0;zone表示每一個(gè)節(jié)點(diǎn)下的區(qū)域,一般有DMA、Normal和HignMem三個(gè)區(qū)域(此處我的是虛擬機(jī)Ubuntu);后面的列表示,伙伴系統(tǒng)中每一個(gè)order對(duì)應(yīng)的空閑頁(yè)面塊。例如,對(duì)于zone DMA的第二列(從0開(kāi)始算起),空閑頁(yè)面數(shù)為3*2^2,可用內(nèi)存為3*2^2*PAGE_SIZE。
(伙伴關(guān)系 : 由一個(gè)母實(shí)體分成的兩個(gè)各方面屬性一致的兩個(gè)子實(shí)體,這兩個(gè)子實(shí)體就處于伙伴關(guān)系。在操作系統(tǒng)分配內(nèi)存的過(guò)程中,一個(gè)內(nèi)存塊常常被分成兩個(gè)大小相等的內(nèi)存塊,這兩個(gè)大小相等的內(nèi)存塊就處于伙伴關(guān)系)
bus :
該子目錄包含您機(jī)器上的總線能夠找到的所有外設(shè)信息。這些信息通常是不可閱讀的(各種數(shù)字,可以打開(kāi)但看不懂),不過(guò)可以使用外部工具(比如 lspcidrake、lspnp 等)對(duì)其中大部分重新格式化。
cgroups :
可以查看系統(tǒng)支持的cgroup子系統(tǒng),也可以用來(lái)判斷系統(tǒng)是否支持cgroup,如果hierarchy項(xiàng)非0說(shuō)明相應(yīng)的子系統(tǒng)已經(jīng)被mount,此時(shí)如果再mount這個(gè)子系統(tǒng)到其它的目錄就可能提示busy錯(cuò)誤
參考:http://blog.csdn.net/wudongxu/article/details/8474198
cmdline : 啟動(dòng)時(shí)傳遞給kernel的參數(shù)信息,boot相關(guān)。
consoles :
官方解釋:It allows users to see what consoles are currently known to the system
and with what flags.(To see which character device lines are currently used for the system console /dev/console, you may simply look into this file)
cpuinfo : 系統(tǒng)中CPU的提供商和相關(guān)配置信息;
詳細(xì)介紹:
processor :系統(tǒng)中邏輯處理核的編號(hào)。對(duì)于單核處理器,則課認(rèn)為是其CPU編號(hào),對(duì)于多核處理器則可以是物理核、或者使用超線程技術(shù)虛擬的邏輯核
vendor_id?。篊PU制造商
cpu family :CPU產(chǎn)品系列代號(hào)
model ?。篊PU屬于其系列中的哪一代的代號(hào)
model name:CPU屬于的名字及其編號(hào)、標(biāo)稱主頻
stepping ? :CPU屬于制作更新版本
cpu MHz ? :CPU的實(shí)際使用主頻
cache size? :CPU二級(jí)緩存大小
physical id? :?jiǎn)蝹€(gè)CPU的標(biāo)號(hào)
siblings? ? ? :?jiǎn)蝹€(gè)CPU邏輯物理核數(shù)
core id? ? ? ? :當(dāng)前物理核在其所處CPU中的編號(hào),這個(gè)編號(hào)不一定連續(xù)
cpu cores? ? :該邏輯核所處CPU的物理核數(shù)
apicid? ? ? ? ? :用來(lái)區(qū)分不同邏輯核的編號(hào),系統(tǒng)中每個(gè)邏輯核的此編號(hào)必然不同,此編號(hào)不一定連續(xù)
fpu? ? ? ? ? ? :是否具有浮點(diǎn)運(yùn)算單元(Floating Point Unit)
fpu_exception? :是否支持浮點(diǎn)計(jì)算異常
cpuid level? :執(zhí)行cpuid指令前,eax寄存器中的值,根據(jù)不同的值cpuid指令會(huì)返回不同的內(nèi)容
wp? ? ? ? ? ? :表明當(dāng)前CPU是否在內(nèi)核態(tài)支持對(duì)用戶空間的寫保護(hù)(Write Protection)
flags? ? ? ? ? :當(dāng)前CPU支持的功能
bogomips? :在系統(tǒng)內(nèi)核啟動(dòng)時(shí)粗略測(cè)算的CPU速度(Million Instructions Per Second)
clflush size? :每次刷新緩存的大小單位
cache_alignment :緩存地址對(duì)齊單位
address sizes? ? :可訪問(wèn)地址空間位數(shù)
power management :對(duì)能源管理的支持
參考:http://blog.csdn.net/lgstudyvc/article/details/7889364
crypto : 系統(tǒng)上已安裝的內(nèi)核使用的密碼算法及每個(gè)算法的詳細(xì)信息列表。
devices : 系統(tǒng)已經(jīng)加載的所有塊設(shè)備和字符設(shè)備的信息;
與/dev/的區(qū)別:
/proc/devices/中的設(shè)備是通過(guò)insmod加載到內(nèi)核的,它可產(chǎn)生一個(gè)major供mknod作為 參數(shù)。
/dev/* 是通過(guò)mknod加上去的,格式:mknod device1 c/b major minor 如:mknod /dev/ttyS0 c 4 64,用戶通過(guò)此設(shè)備名來(lái)訪問(wèn)你的驅(qū)動(dòng)。
major&minor:
文件名比如:/dev/sda? 、/dev/raw/raw1 都是用戶空間名稱,OS Kernel根本不知道這個(gè)名稱代指什么。在內(nèi)核空間是通過(guò)major、minor device number來(lái)區(qū)分設(shè)備的。
major device number: 可以看做是設(shè)備驅(qū)動(dòng)程序,被同一設(shè)備驅(qū)動(dòng)程序管理的設(shè)備有相同的major device number。這個(gè)數(shù)字實(shí)際是Kernel 中device driver table的索引。這個(gè)表保存著不同的設(shè)備驅(qū)動(dòng)程序;
minor device number: 代表被訪問(wèn)的具體設(shè)備。也就是說(shuō),Kernel根據(jù)major device number找到設(shè)備驅(qū)動(dòng)程序,然后再?gòu)膍inor device number獲得設(shè)備位置等屬性。
diskstats : 用于顯示磁盤、分區(qū)和統(tǒng)計(jì)信息,就是顯示各種讀寫的數(shù)據(jù);
參考:http://blog.csdn.net/b_dogs881221/article/details/8228417
http://blog.csdn.net/tenfyguo/article/details/7477526
dma : 每個(gè)正在使用且注冊(cè)的ISA DMA通道的信息列表
driver : 各種驅(qū)動(dòng)信息。
execdomains : 內(nèi)核當(dāng)前支持的執(zhí)行域(每種操作系統(tǒng)獨(dú)特“個(gè)性”)信息列表。
fb : 幀緩沖設(shè)備列表文件,包含幀緩沖設(shè)備的設(shè)備號(hào)和相關(guān)驅(qū)動(dòng)信息。
filesystems : 當(dāng)前被內(nèi)核支持的文件系統(tǒng)類型列表文件,被標(biāo)示為nodev的文件系統(tǒng)表示不需要塊設(shè)備的支持。通常mount一個(gè)設(shè)備時(shí),
如果沒(méi)有指定文件系統(tǒng)類型將通過(guò)此文件來(lái)決定其所需文件系統(tǒng)的類型。
fs : 文件系統(tǒng)的信息。
interrupts : 當(dāng)前系統(tǒng)使用的中斷的情況,文件的每一行都有一個(gè)保留的中斷。每行中的域有:中斷號(hào),本行中斷的發(fā)生次數(shù),可能帶有一個(gè)加號(hào)的域(SA_INTERRUPT標(biāo)志設(shè)置),以及登記這 個(gè)中斷的驅(qū)動(dòng)程序的名字。
參考:http://blog.csdn.net/richardysteven/article/details/6064717
iomem : 顯示所有內(nèi)存緩沖區(qū)映射到物理內(nèi)存的設(shè)備,和分配給每個(gè)緩沖區(qū)的物理內(nèi)存地址(以十六進(jìn)制數(shù)字列出);即0000 0000 - ffff ffff對(duì)應(yīng)的設(shè)備包含主內(nèi)存。
ioports : io端口資源分布,結(jié)合iomem可以理解,參考:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29631743&id=4505778
irq : 中斷請(qǐng)求設(shè)備信息
kallsyms : 調(diào)試內(nèi)核所需要的信息,kallsyms抽取了內(nèi)核用到的所有函數(shù)地址(全局的、靜態(tài)的)和非棧數(shù)據(jù)變量地址,生成一個(gè)數(shù)據(jù)塊,作為只讀數(shù)據(jù)鏈接進(jìn)kernel image,相當(dāng)于內(nèi)核中存了一個(gè)System.map。
kcore : like an "alias" for the memory in your computer. Its size is the same as the amount of RAM you have, and if you read it as
a file, the kernel does memory reads. 也就是說(shuō)相當(dāng)于內(nèi)存的化名。
keys :
key-users :
kmsg : http://blog.sina.com.cn/s/blog_69d581ad0100tied.html
kpagecount : 包含64位計(jì)數(shù) , 表示每一頁(yè)被映射的次數(shù),按照PFN值固定索引。
kpageflags : 此文件包含為64位的標(biāo)志集 ,表示該頁(yè)的屬性,按照PFN索引。
上述兩條參考:http://blog.chinaunix.net/uid-20395453-id-3841096.html
loadavg : 系統(tǒng)平均負(fù)載,即在特定時(shí)間間隔內(nèi)運(yùn)行隊(duì)列中的平均進(jìn)程數(shù);
具體解釋:前三個(gè)數(shù)字是1、5、15分鐘內(nèi)的平均進(jìn)程數(shù),后面兩個(gè)一個(gè)的分子是正在運(yùn)行的進(jìn)程數(shù),分母是進(jìn)程總數(shù);另一個(gè)是最近運(yùn)行的進(jìn)程ID號(hào)。
locks : 這個(gè)文件包含在打開(kāi)的文件上的加鎖信息。文件中的每一行描述了特定文件和文檔上的加鎖信息以及對(duì)文件施加的鎖的類型。內(nèi)核也可以需要時(shí)對(duì)文件施加強(qiáng)制性鎖。
mdstat : 包含了由md設(shè)備驅(qū)動(dòng)程序控制的RAID設(shè)備信息。
meminfo : 給出了內(nèi)存狀態(tài)的信息。它顯示出系統(tǒng)中空閑內(nèi)存,已用物理內(nèi)存和交換內(nèi)存的總量。它還顯示出內(nèi)核使用的共享內(nèi)存和緩沖區(qū)總量。這些信息的格式和top,free命令顯示的結(jié)果類似。
詳細(xì)參數(shù)參考:http://bbs.51cto.com/thread-1100479-1.html
misc : 其他的主要設(shè)備(設(shè)備號(hào)為10)上注冊(cè)的驅(qū)動(dòng)
modules : 模塊加載列表,insmod(加載模塊)后在此添加一行。
mounts : 到 /proc/self/mounts 的一個(gè)符號(hào)鏈接。參考:http://blog.csdn.net/qianguozheng/article/details/27342851
mtrr : 系統(tǒng)使用的Memory Type Range Registers (MTRRs)。
net :
./dev :
Inter-|? Receive? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |? Transmit
face |bytes? ? packets errs drop fifo frame compressed multicast|bytes? ? packets errs drop fifo colls carrier compressed
eth0: 4754677? ? 3895? ? 0? ? 0? ? 0? ? 0? ? ? ? ? 0? ? ? ? 0? 165080? ? 2370? ? 0? ? 0? ? 0? ? 0? ? ? 0? ? ? ? ? 0
lo:? 39434? ? 514? ? 0? ? 0? ? 0? ? 0? ? ? ? ? 0? ? ? ? 0? ? 39434? ? 514? ? 0? ? 0? ? 0? ? 0? ? ? 0? ? ? ? ? 0
最左邊的表示接口的名字,Receive表示收包,Transmit表示收包; bytes表示收發(fā)的字節(jié)數(shù); packets表示收發(fā)正確的包量; errs表示收發(fā)錯(cuò)誤的包量;
drop表示收發(fā)丟棄的包量;
參考 : http://www.cnblogs.com/pricks/p/3822236.html
./snmp 通過(guò)訪問(wèn)該文件系統(tǒng),可以對(duì)TCP和UDP進(jìn)行監(jiān)控:
平均每秒新增TCP連接數(shù) : 通過(guò)/proc/net/snmp文件得到最近240秒內(nèi)PassiveOpens的增量,除以240得到每秒的平均增量。
機(jī)器的TCP連接數(shù) : 通過(guò)/proc/net/snmp文件的CurrEstab得到TCP連接數(shù)。
平均每秒的UDP接收數(shù)據(jù)報(bào) : 通過(guò)/proc/net/snmp文件得到最近240秒內(nèi)InDatagrams的增量,除以240得到平均每秒的UDP接收數(shù)據(jù)報(bào)。
平均每秒的UDP發(fā)送數(shù)據(jù)報(bào) : 通過(guò)/proc/net/snmp文件得到最近240秒內(nèi)OutDatagrams的增量,除以240得到平均每秒的UDP發(fā)送數(shù)據(jù)報(bào)。
以上兩條參考 : http://blog.csdn.net/tenfyguo/article/details/7478584
./tcp : http://blog.csdn.net/zzz_781111/article/details/7976219
./sockstat : http://www.cnblogs.com/jankie/archive/2013/01/30/2882441.html
./arp :
-----------------------------------------------------------------------
IP address? ? ? HW type? ? Flags? ? ? HW address? ? ? ? ? ? Mask? ? Device
192.168.1.151? ? 0x1? ? ? ? 0x2? ? ? ? 00:e0:4c:19:1a:98? ? *? ? ? ? eth0
192.168.1.1? ? ? 0x1? ? ? ? 0x2? ? ? ? 00:14:78:e7:c4:e8? ? *? ? ? ? eth0
-----------------------------------------------------------------------
每個(gè)網(wǎng)絡(luò)接口的arp表中dev包的統(tǒng)計(jì)
IP address:IP地址(直連)
HW type:硬件類型
23=0x17? strip (Metricom Starmode IP)
01=0x01? ether (Ethernet)
15=0xf? ? ? dlci (Frame Relay DLCI)
Flags:
HW address:MAC 地址
Mask:
Device:所在網(wǎng)絡(luò)接口
其余參考 : http://jlspyaozhongkai.blog.163.com/blog/static/116057464200962724623344/
pagetypeinfo : 可以分析內(nèi)存碎片的信息;
參數(shù)分析 : http://blog.csdn.net/goodluckwhh/article/details/9989695
內(nèi)存管理 : http://blog.csdn.net/crazyjiang/article/details/7903772
partitions : 硬盤分區(qū)情況,提供設(shè)備name,major,minor和blocks。
參考:http://blog.csdn.net/nemo2011/article/details/8149736
sched_debug : 調(diào)度器信息,顯示每個(gè)任務(wù)的優(yōu)先級(jí)以及運(yùn)行和睡眠時(shí)間。
schedstat : 內(nèi)核的調(diào)度器統(tǒng)計(jì)信息。
上兩條參考 : http://www.ibm.com/developerworks/cn/linux/l-cfs/
scsi : scsi設(shè)備的相關(guān)信息
self :
官方解釋:This directory refers to the process accessing the /proc filesystem, and is identical to the /proc directory? named
by the process ID of the same process.
slabinfo : slab緩存的相關(guān)信息。
參考 : http://blog.chinaunix.net/uid-20565779-id-1633920.html
softirqs : 軟件中斷的觸發(fā)次數(shù)信息
參考 : http://www.kuqin.com/shuoit/20131031/336024.html? http://blog.csdn.net/droidphone/article/details/7518428
stat : 包含了所有CPU活動(dòng)的信息,該文件中的所有值都是從系統(tǒng)啟動(dòng)開(kāi)始累計(jì)到當(dāng)前時(shí)刻。
參考 : http://www.cnblogs.com/no7dw/archive/2011/07/04/2097300.html
swaps : 虛擬內(nèi)存/交換區(qū)的使用情況。
sys : 內(nèi)核中可配置的信息。
參考 : http://blog.chinaunix.net/uid-22159621-id-1789315.html
sysrq-trigger : 關(guān)閉/重啟/崩潰計(jì)算機(jī)以及導(dǎo)出內(nèi)存,cpu的配置信息,重新掛在文件系統(tǒng)等,對(duì)root也是不可讀的。
參考 : http://blog.csdn.net/choice_jj/article/details/7965676
sysvipc : 查看系統(tǒng)所有msg消息隊(duì)列,sem信號(hào)量和shm共享內(nèi)存信息.
thread-self : 同self
timer_list : 顯示系統(tǒng)當(dāng)前配置的所有時(shí)鐘的詳細(xì)情況,譬如當(dāng)前系統(tǒng)活動(dòng)的時(shí)鐘源設(shè)備,時(shí)鐘事件設(shè)備,tick device 等。
timer_stats : 顯示當(dāng)前系統(tǒng)中所有正在使用timer的進(jìn)程,函數(shù)等統(tǒng)計(jì)信息,默認(rèn)是關(guān)閉的,echo 1 > /proc/timer_stats
以上兩條參考 : http://blog.csdn.net/sunnybeike/article/details/7025123
tty : tty設(shè)備信息。
uptime : 顯示系統(tǒng)到現(xiàn)在啟動(dòng)和空閑的時(shí)間。參考 : http://www.cnblogs.com/frydsh/p/3887357.html
version : 系統(tǒng),gcc版本信息:
Linux version 3.19.0-25-generic (buildd@lgw01-20) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015
version_signature : 略
vmallocinfo : vmalloc內(nèi)存區(qū)域的使用分配情況;
參考 : http://www.360doc.com/content/15/0107/22/426085_439012564.shtml? 和之前的 http://www.360doc.com/content/15/0107/22/426085_439012564.shtml
vmstat : 虛擬內(nèi)存統(tǒng)計(jì)信息。
zoneinfo : 示內(nèi)存空間的統(tǒng)計(jì)信息,對(duì)分析虛擬內(nèi)存行為很有用。
有關(guān)內(nèi)存閥值的計(jì)算,參考:
http://www.cnblogs.com/panfeng412/p/drop-caches-under-linux-system-2.html
該文章介紹了如何利用zoneinfo中的信息解決Linux服務(wù)器Cache占用過(guò)多內(nèi)存導(dǎo)致系統(tǒng)內(nèi)存不足問(wèn)題。
以下是/proc目錄中進(jìn)程N(yùn)的信息(部分省略)
/proc/N pid為N的進(jìn)程信息;
/proc/N/cmdline 進(jìn)程啟動(dòng)命令;
/proc/N/cwd 鏈接到進(jìn)程當(dāng)前工作目錄;
/proc/N/environ 進(jìn)程環(huán)境變量列表;
/proc/N/exe 鏈接到進(jìn)程的執(zhí)行命令文件;
/proc/N/fd 包含進(jìn)程相關(guān)的所有的文件描述符;
/proc/N/maps 與進(jìn)程相關(guān)的內(nèi)存映射信息;
/proc/N/mem 指代進(jìn)程持有的內(nèi)存,root不可讀;
/proc/N/root 鏈接到進(jìn)程的根目錄;
/proc/N/stat 進(jìn)程的狀態(tài);
/proc/N/statm 進(jìn)程使用的內(nèi)存的狀態(tài);
/proc/N/status 進(jìn)程狀態(tài)信息,比stat/statm更具可讀性;