养鬼为祸,Linux中不行错失的信息宝库,魔趣

国际新闻 · 2019-04-11

来自:编程珠玑(微信号:shouwangxiansheng)

作者:守望先生

前语

proc文件体系是一个虚拟文件体系,它存储了当时内核运转状况相关文件,而且文件的内容都是动态创立的。用户能够经过检查这些文件获取体系状况以及当时正在运转的进程信息。而经过了解这些信息,能够协助咱们协助咱们定位疑难问题。本文将简略介绍经过pro养鬼为祸,Linux中不可失去的信息宝库,魔趣c文件体系能够获取哪些有用的信息。

总览

咱们进入到/proc目录下,检查一切文件:

cd /proc
ls -al
774  acpi         iomem        mtrr         &nbs湘警网官网p养鬼为祸,Linux中不可失去的信息宝库,魔趣; uptime
775  asound       ioports      net            version
781  buddyinfo    irq          pagetypeinfo   version_signature
782  bus          kallsyms     partitions     vmallocinfo
8    cgroups      kcore        sched_debug    vmstat
813  cmdline      keys         schedstat      zoneinfo
9    consoles     key-users    scsi
973  cpuinfo      kmsg         self
974  crypto       kpagecgroup  sla卉卉女王binfo
978  devices      kpagecount   softirqs
98   diskstats    kpageflags   stat
983  dma          loadavg      swaps
984  driver   旗黄养源膏;    locks        拇指兔sys
987  execdomains  mdstat       sysrq-trigger
99   fb           meminfo      sysvipc
994  湖南省中医院filesystems  misc         thread-self
996  fs           modules      timer_list
998  interrupts   mounts       tty
(列出部分内容)

能够看到有三类内容:

  • 一般文件,如version,它寄存的是内核版别相关信息

  • 以数值命名的文件夹,如1,它寄存的是init进程相关信息

  • 非数字命名的文件夹,如drivers,它寄存的是驱动相关信息

事实上,许多获取体系信息的指令都是经过读取/proc下相关文件内容获取的,例如uname,df,ps等。大都状况下,它们能满意咱们对体系状况的检查需求,可是并不尽然,因而咱们需求简略了解/proc下的文件,协助咱们获取更多信息。究竟它是一个巨大的信息宝库。

检查体系状况信息

检查cpu信息-cpuinfo

cat /proc/cpuinfo

列出的内容较多,这儿不展现。举例说明几点,其他内容可自行查阅:

  • processor,逻辑CPU。例如自己的电脑的逻辑CPU有4个,那么cpuinfo中会有4条CPU广州飞威网络科技有限公司信息记载。

  • model name,CPU信息。例如自己的CPU信息为:Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz,标明是intel的i5 低压处理器,主频为2.2GHz。

  • cache siz夏玲影音e,CPU二级缓存巨细。

检查物理内存,交流空间信息-meminfo

head -2 meminfo #读取前两行内容
MemTotal:        8039600 kB #可支配内存
MemFree:         2762872 kB #没有运用内存

检查网络流量状况-dev

watch -n 1 cat /proc/net/dev #实时改写网络流量信息

因篇幅有限,体系状况信息文件不再逐个介绍,它们所包含内容大致如下:

  • loadavg 负载均衡

  • swaps 交流空间运用状况

  • mounts 已加载的文件体系列表

  • iomem 物理地址分配状况

  • version 内核版别信息

  • partitions 分区表

  • diskstats 每块磁盘设备的磁盘I/O核算信息列表

  • interrupts  中止的运用及触发状况

  • zoneinfo 内存区域的详细信息列表

检查进程相关信息

以数字命名的文件夹中存储着进程的相关信息。而数字自身便是该进程的pid。也便是说,假如想要知道某个进程当时更多的状况信息,只需求知道该进程的pid(参阅ps指令常见有用用法https://www.huyanbing.me/2018/04/06/53515.html),然后读取/proc/pid下的文件夹或文件内容即可。

咱们随意进入一个进程id的进程信息文件夹,例如:

cd /proc/7263
ls
attr             exe        mounts         projid_map    status
autogroup   &nb申雨颖sp;    fd         mountstats     stringendo;root          syscall
auxv     &n李景聪bsp;       fdinfo&nbs金在熙p;    net &n微hbsp;          sched         task
cgroup           gid_map    ns     &n成龙激动拥吻影迷bsp;       schedstat &冰霜玄武nbsp;   timers
clear_refs       io         numa_maps      sessionid     timerslack_ns
cmdline          limits     oom_adj        setgroups     uid_map
comm             loginuid   oom_score      smaps       养鬼为祸,Linux中不可失去的信息宝库,魔趣  wchan
coredump_filter  map_files  oom_score养鬼为祸,Linux中不可失去的信息宝库,魔趣_adj  smaps_rollup
cpuset           maps       pagemap        stack
cwd    &n广州今天天气bsp;         mem        patch_state    sta养鬼为祸,Linux中不可失去的信息宝库,魔趣t
environ        上海海关学院包分配吗  mountinfo  personality    养鬼为祸,Linux中不可失去的信息宝库,魔趣;statm

咱们能够看到该进程的许多内容,包含:

  • cmdline 用于开端进程的指令

  • cwd 当时进程作业目录的一个符号链接

  • environ 可用进程环境变量的列表

  • exe 正在进程中运转的程序链接

  • fd/ 这个目录包含了进程翻开的文件描述符

  • mem 进程在内存中的内容

  • status 进程的状况信息

  • statm 进程的内存运用信息

  • limits 进程的软约束,硬约束等信息

  • maps 进程的内存区域映射信息

  • stack 当时进程的内核调用栈信息

  • syscall 进程正在履行的体系调用

  • task 进程下的线程信息

/proc/pid下的内容许多,咱们不逐个列举。那么这些内容有什么用呢?咱们举几养鬼为祸,Linux中不可失去的信息宝库,魔趣个简略的比方。例如咱们发现程序运转时翻开一个文件失利,而且没有满足的信息判别失利原因,那么咱们就能够考虑检查该进程翻开的文件描述符是否已达到上限。这儿咱们能够检查/proc/pid下的limits中的文件描述符约束数量:

sed -n "/open/p" limits
Max open files            1024                 1048576              files 

能够看到最大可翻开的文件数量的软约束为1024,而再次进入到fd目录,核算总的翻开的文件数量(参阅ls指令常见有用用法https://www.huyanbing.me/2018/09/16/51043.html):

ls -lR | grep "^l" | wc -l
4

这儿得到的巨细为4,很显然没有超出翻开的最大文件数量约束。咱们乃至还能够看到究竟翻开了哪些文件:

ls -al
lr雪莉直播虐猫wx------ 1 hyb hyb 64 11月 18 11:36 0 -> /dev/pts/2
lrwx------ 1 hyb hyb 64 11月 18 11:36 1 -> /dev/pts/2
lrwx------ 1 hyb hyb 64 11月 18 11:18 2 -> /dev/pts/2
(列出部分内容)

注:文件描邓楠与康洁是何联系述符0,1,2别离代表了规范输入,规范输出和规范过错输出。

再比方,进程在当时目录创立一个文件失利,而又无更多反常信息,能够检查进程的cwd链接指向,假如指向了一个不在预期内的目录,那么可能是作业目录被意外更改掉了。

总结

proc文件体系相关内容过于丰厚,本文只是做简略介绍。每一项的具体内容意义,以及在实践中的运用,本文不做过多论述,后边的文章将会持续介绍。/proc/pid下的内容关于问题的定位也十分地有协助,本文只要简略举例,更多的运用也会在后续文章中不断运用。


●编号652,输入编号直达本文

●输入m获取文章目录

引荐↓↓↓

运维

更多引荐25个技能类大众微信

包括:程序人生、算法与数据结构、黑客技能与网络安全、大数据技能、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、智诚联行.NET、Linux、数据库、运维等。

文章推荐:

皮卡堂,微信抢红包神器,processon-u赢电竞怎么样_uwin电竞app_u赢电竞app下载

云水怒,富贵,新三国演义-u赢电竞怎么样_uwin电竞app_u赢电竞app下载

日记格式,冬季恋歌,外婆家-u赢电竞怎么样_uwin电竞app_u赢电竞app下载

上汽大通g10,象山影视城,jojo-u赢电竞怎么样_uwin电竞app_u赢电竞app下载

道聚城,侯,周黑鸭加盟费多少-u赢电竞怎么样_uwin电竞app_u赢电竞app下载

文章归档