/proc下的字文件及子文件夾的解釋:
/proc 文件系統(tǒng)是 GNU/Linux 特有的坑资。它是一個虛擬的文件系統(tǒng)洼裤,因此在該目錄中的所有文件都不會消耗磁盤空間。通過它能夠非常簡便地了解系統(tǒng)信息习瑰,尤其是其中的大部分文件是人類可閱讀的(不過還是需要一些幫助)实抡。許多程序?qū)嶋H上只是從 /proc 的文件中收集信息,然后按照它們自己的格式組織后顯示出來锚贱。有一些顯示進(jìn)程信息的程序(top仔戈、ps 等)就是這么作的。/proc 還是了解您系統(tǒng)硬件的好去處拧廊。就象那些顯示進(jìn)程信息的程序一樣监徘,不少程序只是提供了獲取 /proc 中信息的接口。其中還有一個特殊的子目錄:/proc/sys吧碾。它讓您能夠顯示內(nèi)核參數(shù)并更改它們凰盔,而且這一更改將立即生效。
./acpi : 高級電源管理;
./asound : 聲卡配置文件;
buddyinfo :
內(nèi)存管理的信息倦春,主要用來分析內(nèi)存碎片的,內(nèi)存分為 2個區(qū)域户敬,DMA,DMA32 ,如果分頁大小為4K睁本,那我們可以分區(qū)域來看:
DMA:? ? 有6塊1頁大小的空間尿庐、2塊2頁大小的空間,3塊4頁大小的空間呢堰,6塊8頁大小的空間抄瑟。。枉疼。皮假。。骂维。
以此類推钞翔,越是往后的空間,就越是連續(xù)席舍,數(shù)目越多布轿,就代表這個大小的連續(xù)空間越多,當(dāng)大的連續(xù)空間很少的時候,也就說明汰扭,內(nèi)存碎片已經(jīng)非常多了稠肘。
此外可以這樣理解:
Node表示在NUMA環(huán)境下的節(jié)點號,這里只有一個節(jié)點0萝毛;zone表示每一個節(jié)點下的區(qū)域项阴,一般有DMA、Normal和HignMem三個區(qū)域(此處我的是虛擬機(jī)Ubuntu)笆包;后面的列表示环揽,伙伴系統(tǒng)中每一個order對應(yīng)的空閑頁面塊。例如庵佣,對于zone DMA的第二列(從0開始算起)歉胶,空閑頁面數(shù)為3*2^2,可用內(nèi)存為3*2^2*PAGE_SIZE巴粪。
(伙伴關(guān)系 : 由一個母實體分成的兩個各方面屬性一致的兩個子實體通今,這兩個子實體就處于伙伴關(guān)系。在操作系統(tǒng)分配內(nèi)存的過程中肛根,一個內(nèi)存塊常常被分成兩個大小相等的內(nèi)存塊辫塌,這兩個大小相等的內(nèi)存塊就處于伙伴關(guān)系)
bus :
該子目錄包含您機(jī)器上的總線能夠找到的所有外設(shè)信息。這些信息通常是不可閱讀的(各種數(shù)字派哲,可以打開但看不懂)臼氨,不過可以使用外部工具(比如 lspcidrake、lspnp 等)對其中大部分重新格式化芭届。
cgroups :
可以查看系統(tǒng)支持的cgroup子系統(tǒng),也可以用來判斷系統(tǒng)是否支持cgroup一也,如果hierarchy項非0說明相應(yīng)的子系統(tǒng)已經(jīng)被mount,此時如果再mount這個子系統(tǒng)到其它的目錄就可能提示busy錯誤
參考:http://blog.csdn.net/wudongxu/article/details/8474198
cmdline : 啟動時傳遞給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)中邏輯處理核的編號抑月。對于單核處理器树叽,則課認(rèn)為是其CPU編號,對于多核處理器則可以是物理核谦絮、或者使用超線程技術(shù)虛擬的邏輯核
vendor_id√馑小:CPU制造商
cpu family :CPU產(chǎn)品系列代號
model 〔阒濉:CPU屬于其系列中的哪一代的代號
model name:CPU屬于的名字及其編號性锭、標(biāo)稱主頻
stepping ? :CPU屬于制作更新版本
cpu MHz ? :CPU的實際使用主頻
cache size? :CPU二級緩存大小
physical id? :單個CPU的標(biāo)號
siblings? ? ? :單個CPU邏輯物理核數(shù)
core id? ? ? ? :當(dāng)前物理核在其所處CPU中的編號,這個編號不一定連續(xù)
cpu cores? ? :該邏輯核所處CPU的物理核數(shù)
apicid? ? ? ? ? :用來區(qū)分不同邏輯核的編號叫胖,系統(tǒng)中每個邏輯核的此編號必然不同草冈,此編號不一定連續(xù)
fpu? ? ? ? ? ? :是否具有浮點運(yùn)算單元(Floating Point Unit)
fpu_exception? :是否支持浮點計算異常
cpuid level? :執(zhí)行cpuid指令前,eax寄存器中的值,根據(jù)不同的值cpuid指令會返回不同的內(nèi)容
wp? ? ? ? ? ? :表明當(dāng)前CPU是否在內(nèi)核態(tài)支持對用戶空間的寫保護(hù)(Write Protection)
flags? ? ? ? ? :當(dāng)前CPU支持的功能
bogomips? :在系統(tǒng)內(nèi)核啟動時粗略測算的CPU速度(Million Instructions Per Second)
clflush size? :每次刷新緩存的大小單位
cache_alignment :緩存地址對齊單位
address sizes? ? :可訪問地址空間位數(shù)
power management :對能源管理的支持
參考:http://blog.csdn.net/lgstudyvc/article/details/7889364
crypto : 系統(tǒng)上已安裝的內(nèi)核使用的密碼算法及每個算法的詳細(xì)信息列表怎棱。
devices : 系統(tǒng)已經(jīng)加載的所有塊設(shè)備和字符設(shè)備的信息哩俭;
與/dev/的區(qū)別:
/proc/devices/中的設(shè)備是通過insmod加載到內(nèi)核的,它可產(chǎn)生一個major供mknod作為 參數(shù)拳恋。
/dev/* 是通過mknod加上去的凡资,格式:mknod device1 c/b major minor 如:mknod /dev/ttyS0 c 4 64,用戶通過此設(shè)備名來訪問你的驅(qū)動谬运。
major&minor:
文件名比如:/dev/sda? 隙赁、/dev/raw/raw1 都是用戶空間名稱,OS Kernel根本不知道這個名稱代指什么梆暖。在內(nèi)核空間是通過major伞访、minor device number來區(qū)分設(shè)備的。
major device number: 可以看做是設(shè)備驅(qū)動程序式廷,被同一設(shè)備驅(qū)動程序管理的設(shè)備有相同的major device number咐扭。這個數(shù)字實際是Kernel 中device driver table的索引。這個表保存著不同的設(shè)備驅(qū)動程序;
minor device number: 代表被訪問的具體設(shè)備滑废。也就是說蝗肪,Kernel根據(jù)major device number找到設(shè)備驅(qū)動程序,然后再從minor device number獲得設(shè)備位置等屬性蠕趁。
diskstats : 用于顯示磁盤薛闪、分區(qū)和統(tǒng)計信息,就是顯示各種讀寫的數(shù)據(jù);
參考:http://blog.csdn.net/b_dogs881221/article/details/8228417
http://blog.csdn.net/tenfyguo/article/details/7477526
dma : 每個正在使用且注冊的ISA DMA通道的信息列表
driver : 各種驅(qū)動信息俺陋。
execdomains : 內(nèi)核當(dāng)前支持的執(zhí)行域(每種操作系統(tǒng)獨特“個性”)信息列表豁延。
fb : 幀緩沖設(shè)備列表文件,包含幀緩沖設(shè)備的設(shè)備號和相關(guān)驅(qū)動信息腊状。
filesystems : 當(dāng)前被內(nèi)核支持的文件系統(tǒng)類型列表文件诱咏,被標(biāo)示為nodev的文件系統(tǒng)表示不需要塊設(shè)備的支持。通常mount一個設(shè)備時缴挖,
如果沒有指定文件系統(tǒng)類型將通過此文件來決定其所需文件系統(tǒng)的類型袋狞。
fs : 文件系統(tǒng)的信息。
interrupts : 當(dāng)前系統(tǒng)使用的中斷的情況映屋,文件的每一行都有一個保留的中斷苟鸯。每行中的域有:中斷號,本行中斷的發(fā)生次數(shù)棚点,可能帶有一個加號的域(SA_INTERRUPT標(biāo)志設(shè)置)早处,以及登記這 個中斷的驅(qū)動程序的名字。
參考:http://blog.csdn.net/richardysteven/article/details/6064717
iomem : 顯示所有內(nèi)存緩沖區(qū)映射到物理內(nèi)存的設(shè)備瘫析,和分配給每個緩沖區(qū)的物理內(nèi)存地址(以十六進(jìn)制數(shù)字列出)砌梆;即0000 0000 - ffff ffff對應(yīng)的設(shè)備包含主內(nèi)存默责。
ioports : io端口資源分布,結(jié)合iomem可以理解么库,參考:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29631743&id=4505778
irq : 中斷請求設(shè)備信息
kallsyms : 調(diào)試內(nèi)核所需要的信息傻丝,kallsyms抽取了內(nèi)核用到的所有函數(shù)地址(全局的、靜態(tài)的)和非棧數(shù)據(jù)變量地址诉儒,生成一個數(shù)據(jù)塊葡缰,作為只讀數(shù)據(jù)鏈接進(jìn)kernel image,相當(dāng)于內(nèi)核中存了一個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. 也就是說相當(dāng)于內(nèi)存的化名泛释。
keys :
key-users :
kmsg : http://blog.sina.com.cn/s/blog_69d581ad0100tied.html
kpagecount : 包含64位計數(shù) , 表示每一頁被映射的次數(shù)温算,按照PFN值固定索引怜校。
kpageflags : 此文件包含為64位的標(biāo)志集 ,表示該頁的屬性注竿,按照PFN索引茄茁。
上述兩條參考:http://blog.chinaunix.net/uid-20395453-id-3841096.html
loadavg : 系統(tǒng)平均負(fù)載,即在特定時間間隔內(nèi)運(yùn)行隊列中的平均進(jìn)程數(shù)巩割;
具體解釋:前三個數(shù)字是1裙顽、5、15分鐘內(nèi)的平均進(jìn)程數(shù)宣谈,后面兩個一個的分子是正在運(yùn)行的進(jìn)程數(shù)愈犹,分母是進(jìn)程總數(shù);另一個是最近運(yùn)行的進(jìn)程ID號闻丑。
locks : 這個文件包含在打開的文件上的加鎖信息漩怎。文件中的每一行描述了特定文件和文檔上的加鎖信息以及對文件施加的鎖的類型。內(nèi)核也可以需要時對文件施加強(qiáng)制性鎖嗦嗡。
mdstat : 包含了由md設(shè)備驅(qū)動程序控制的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è)備號為10)上注冊的驅(qū)動
modules : 模塊加載列表,insmod(加載模塊)后在此添加一行蚕断。
mounts : 到 /proc/self/mounts 的一個符號鏈接欢伏。參考: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ā)錯誤的包量滋恬;
drop表示收發(fā)丟棄的包量;
參考 : http://www.cnblogs.com/pricks/p/3822236.html
./snmp 通過訪問該文件系統(tǒng)抱究,可以對TCP和UDP進(jìn)行監(jiān)控:
平均每秒新增TCP連接數(shù) : 通過/proc/net/snmp文件得到最近240秒內(nèi)PassiveOpens的增量恢氯,除以240得到每秒的平均增量。
機(jī)器的TCP連接數(shù) : 通過/proc/net/snmp文件的CurrEstab得到TCP連接數(shù)鼓寺。
平均每秒的UDP接收數(shù)據(jù)報 : 通過/proc/net/snmp文件得到最近240秒內(nèi)InDatagrams的增量勋拟,除以240得到平均每秒的UDP接收數(shù)據(jù)報。
平均每秒的UDP發(fā)送數(shù)據(jù)報 : 通過/proc/net/snmp文件得到最近240秒內(nèi)OutDatagrams的增量妈候,除以240得到平均每秒的UDP發(fā)送數(shù)據(jù)報敢靡。
以上兩條參考 : 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
-----------------------------------------------------------------------
每個網(wǎng)絡(luò)接口的arp表中dev包的統(tǒng)計
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)度器信息纺念,顯示每個任務(wù)的優(yōu)先級以及運(yùn)行和睡眠時間。
schedstat : 內(nèi)核的調(diào)度器統(tǒng)計信息所计。
上兩條參考 : 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活動的信息,該文件中的所有值都是從系統(tǒng)啟動開始累計到當(dāng)前時刻主胧。
參考 : 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ī)以及導(dǎo)出內(nèi)存踪栋,cpu的配置信息焙格,重新掛在文件系統(tǒng)等,對root也是不可讀的。
參考 : http://blog.csdn.net/choice_jj/article/details/7965676
sysvipc : 查看系統(tǒng)所有msg消息隊列,sem信號量和shm共享內(nèi)存信息.
thread-self : 同self
timer_list : 顯示系統(tǒng)當(dāng)前配置的所有時鐘的詳細(xì)情況夷都,譬如當(dāng)前系統(tǒng)活動的時鐘源設(shè)備眷唉,時鐘事件設(shè)備,tick device 等囤官。
timer_stats : 顯示當(dāng)前系統(tǒng)中所有正在使用timer的進(jìn)程冬阳,函數(shù)等統(tǒng)計信息,默認(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)在啟動和空閑的時間。參考 : 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)計信息饲常。
zoneinfo : 示內(nèi)存空間的統(tǒng)計信息,對分析虛擬內(nèi)存行為很有用狼讨。
有關(guān)內(nèi)存閥值的計算贝淤,參考:
http://www.cnblogs.com/panfeng412/p/drop-caches-under-linux-system-2.html
該文章介紹了如何利用zoneinfo中的信息解決Linux服務(wù)器Cache占用過多內(nèi)存導(dǎo)致系統(tǒng)內(nèi)存不足問題。
以下是/proc目錄中進(jìn)程N(yùn)的信息(部分省略)
/proc/N pid為N的進(jìn)程信息政供;
/proc/N/cmdline 進(jìn)程啟動命令播聪;
/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更具可讀性沦寂;