linux下proc目录部分说明

标签: linux proc
11人阅读 评论(0) 收藏 举报
分类:
1、linux虚拟内存操作
(1)脏数据超过内存的百分比, pdflush进程将脏数据写回磁盘(%:10)
echo 5 > /proc/sys/vm/dirty_background_ratio 


(2)进程脏数据超过内存的百分比, 进程自动将脏数据写回磁盘(%)
echo 5 > /proc/sys/vm/dirty_ratio


(3)脏数据在内存中驻留时间超过设定值,pdflush进程将脏数据写回磁盘(1/100s:3000)
echo 1000 > /proc/sys/vm/dirty_expire_centisecs


(4)pdflush进程每隔多久自动运行一次(1/100s:500)
echo 100 > /proc/sys/vm/dirty_writeback_centisecs


(5)linux VM最低保留时间
echo 2048 > /proc/sys/vm/min_free_kbytes


(6)写入时,内核清空缓存相当于sync(0)
清空页缓存
echo 1 > /proc/sys/vm/drop_caches
清空inode目录
echo 2 > /proc/sys/vm/drop_caches
都清空
echo 3 > /proc/sys/vm/drop_caches


(7)设置虚拟内存回收directory和i-node缓冲的倾向(defalut:100)
echo 200 >/proc/sys/vm/vfs_cache_pressure
推荐值200, 参数越大回收倾向越严重


2、非对齐访问
在linux下对alignment trap的处理方法:
0(ignored)
1(warn)
2(fixup)
3(fixup+warn)
4(signal)
5(signal + warn)
echo 5 >/proc/cpu/aligment


修改arch/arm/mm/aligment.c来修改处理方法的值。


3、TCP缓冲区大小
/proc/sys/net/ipv4 # cat tcp_rmem 
/proc/sys/net/ipv4 # cat tcp_wmem 
收发的默认缓冲数
/proc/sys/net/core # cat rmem_max 
/proc/sys/net/core # cat wmem_max 
收发的最大值


4、查看内核线程限制
当前设备线程栈空间大小为 8M,Ulimit可以查看栈大小
    -d: data seg size (kb)             unlimited
    -s: stack size (kb)                8192  (8M)
    -c: core file size (blocks)        0
    -m: resident set size (kb)         unlimited
    -l: locked memory (kb)             64
    -p: processes                      1856
    -n: file descriptors               1024
    栈空间为虚拟栈空间大小, 非实际栈内存
设备理论上支持最大线程数和进程数, /proc/sys/kernel/
    cat threads-max 
    3712
    cat pid_max 
    32768
    这么大的数只要不是服务器是绝对够的
实际理论算出的线程数
    我们的设备一般都是3+1模型,3G usr + 1G kenel。
    理论算出线程数:3G/8M = 384
    实际:用户空间达不到3G,另外用户空间不可能全部当做线程栈空间,所以实际可用线程数远小于384
应用起来后Challenge线程数
    VmSwap:        0 kB
    Threads:        97
    SigQ:   0/1856
    这个在默认配置下,如果功能全部打开可能会很多。
解决方法
    (1)减少栈空间大小,增加线程数。隐患:栈太小导致线程运行过程中栈空间不够导致其他问题。
    (2)尽量控制线程数在合理范围内。
    
5、查看进程各种状态
cat /proc/<pid>/status,具体内容如下:


Name:   Challenge //进程名字
State:  S (sleeping) //任务状态, 运行/睡眠/僵死/
Tgid:   1217 //线程组号
Pid:    1217 //任务ID
PPid:   1216 //父进程ID
TracerPid:      0 //接收跟踪该进程信号的进程ID号
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 1024 //文件描述符最大个数
Groups: 0 //启动该进程用户所属的组ID
VmPeak:  1024008 kB //进程地址空间的大小,进程运行过程中占用内存的峰值
VmSize:   999968 kB //虚拟地址空间大小(total_vm进程地址空间大小 - reserved_vm进程在预留的内存间物理页)
VmLck:         0 kB //已经锁定的物理内存大小(loack_vm)
VmHWM:    162808 kB //应用程序使用物理内存大小峰值
VmRSS:    161732 kB //应用程序正在使用的物理内存大小
VmData:   980616 kB //程序数据段的大小(所占虚拟内存大小),存放了初始化数据(total_vm - shared_vm - stack_vm)
VmStk:       136 kB //任务用户堆栈大小(stack_vm)
VmExe:     18680 kB //程序拥有的可执行虚拟内存大小,代码段,不包括任务使用的库(end_code_start_code)
VmLib:         0 kB //被映像到任务的虚拟内存空间的库大小(exec_lib)
VmPTE:       426 kB //该进程页表大小
VmSwap:        0 kB
Threads:        96 //线程个数
SigQ:   0/1935 //待处理信号个数
SigPnd: 0000000000000000 //屏蔽位,存储了该线程的待处理信号
ShdPnd: 0000000000000000 //屏蔽位,存储了该线程组的待处理信号
SigBlk: 0000000000000000 //存放被阻塞的信号
SigIgn: 0000000000000001 //存放被忽略信号
SigCgt: 00000001e0001cfe //存放被俘获到的信号
CapInh: 0000000000000000 //能被当前进程执行的程序的继承能力
CapPrm: ffffffffffffffff //进程能够使用的能力
CapEff: ffffffffffffffff //进程有效能力
CapBnd: ffffffffffffffff
Cpus_allowed:   3
Cpus_allowed_list:      0-1
voluntary_ctxt_switches:        1125
nonvoluntary_ctxt_switches:     301


cat /proc/<pid>/maps
反应进程占用的内存区域
00008000-0024d000 r-xp 00000000 1f:01 921        /bin/busybox
00254000-00263000 rw-p 00244000 1f:01 921        /bin/busybox
00263000-00382000 rw-p 00000000 00:00 0 
006da000-006fc000 rw-p 00000000 00:00 0          [heap]
40093000-40094000 rw-p 00000000 00:00 0 
be96b000-be98c000 rw-p 00000000 00:00 0          [stack]
ffff0000-ffff1000 r-xp 00000000 00:00 0          [vectors]
每行数据意思:
开始——结束 访问权限 偏移 主设备号:次设备号 i节点 文件
查看评论

Linux下的一些重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp/etc

简单介绍各个目录的作用: /bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。/sys: 文件系统访问 Linux内核/SELinux SELinu...
  • weiaiyisheng_ljj
  • weiaiyisheng_ljj
  • 2017-12-07 16:28:35
  • 121

Linux中重要目录及重要命令

Linux下的重要目录/proc, /sys, /SElinux, /bin, /usr/lib, /usr/local, /var, /tmp (1)/proc:特殊文件目录。这个目录采用一种特殊...
  • liyueshang
  • liyueshang
  • 2017-11-12 18:23:05
  • 334

Linux 中/proc目录下文件详解

转载自:http://blog.csdn.net/kevinx_xu/article/details/8178746/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进程的, 而是能够在整...
  • u011003120
  • u011003120
  • 2016-10-28 20:46:55
  • 3538

SUSE系统中proc目录的介绍

1.1.1.1. 虚拟文件系统/proc /proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进...
  • yu829
  • yu829
  • 2012-03-17 18:56:34
  • 861

linux系统proc目录进程信息详解

 Proc 文件系统是一个实时的,常驻内存的文件系统,它跟踪进程在你机器上的运行情况和你系统的状态。/proc文件系统是常驻虚拟内存并且维持着操作系统的动态数据。大部分的 /proc文件系统信息被实时...
  • 21aspnet
  • 21aspnet
  • 2007-03-19 19:58:00
  • 4520

proc文件系统探索 之 以数字命名的目录

在proc根目录下,以数字命名的目录表示当前一个运行的进程,目录名即为进程的pid。其内的目录和文件给出了一些关于该进程的信息。niutao@niutao-desktop:/proc/6584$ ls...
  • ctthunagchneg
  • ctthunagchneg
  • 2014-12-28 02:25:49
  • 1901

Linux /proc/pid目录下相应文件的信息说明和含义

Proc是一个虚拟文件系统,在Linux系统中它被挂载于/proc目录之上。Proc有多个功能 ,这其中包括用户可以通过它访问内核信息或用于排错,这其中一个非常有 用的功能,也是Linux变得更加特别...
  • English0523
  • English0523
  • 2016-11-29 13:30:35
  • 4933

linux之/proc目录CPU解说

在 Unix/Linux 系统日常管理和系统维护的过程中,随时可能需要查看 CPU 的使用状态,并根据相应信息分析系统状况,判断系统的资源使用情况和系统负载情况。本文在介绍 Unix/Linux 系统...
  • q454684431
  • q454684431
  • 2016-03-02 11:32:26
  • 4358

浅入分析和Linux内核相关的文件夹/proc和/sys

近来文章被踩的厉害,我只想把自己从马哥学的知识自己总结下发到博客里,但是没想到昨天一篇文章刚发一上午被踩了9次。。。如果您真的觉得我的文章很烂,请告诉我原因,不胜感激。 这星期,马哥...
  • deansrk
  • deansrk
  • 2011-08-07 11:58:03
  • 16720

linux /proc目录下的文件详解

事情是这样的:一个朋友问为什么/proc目录下的/proc/sys/net/ipv4/conf/lo/arp_ignore只能用echo修改,却无法用vi编辑后进行保存,即使是强制保存都不行...而且...
  • dtwangquan
  • dtwangquan
  • 2014-08-24 10:32:45
  • 1731
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 686
    排名: 7万+
    最新评论