linux程序员的proc文件系统

1) 设置core文件存放路径和文件名模式:

设置/proc/sys/kernel/core_pattern,如:

echo "core" > /proc/sys/kernel/core_pattern

表示当前目录下生成不带后缀的core文件。

echo “/data/coredump/core”> /proc/sys/kernel/core_pattern

表示将core文件放到/data/coredump/core目录下,不带后缀。

echo "/tmp/cores/core.%e.%p.%h.%t" > /proc/sys/kernel/core_pattern

表示core文件放到/tmp/cores目录下,并且带上后缀。

%% 单个%字符

%p 所dump进程的进程ID

%u 所dump进程的实际用户ID

%g 所dump进程的实际组ID

%s 导致本次core dump的信号

%t core dump的时间 (由1970年1月1日计起的秒数)

%h 主机名

%e 程序文件名

2) /proc/sys/vm/drop_caches

echo 1 > /proc/sys/vm/drop_caches

释放pagecache

echo 2 > /proc/sys/vm/drop_caches

释放buffercache

echo 3 > /proc/sys/vm/drop_caches

同时释放pagecache和buffercache

“echo 4”重置,不支持“echo 0”,但新的内核可能也不支持“echo 4”,原因是echo "3"等只是一次有效。

pagecache是针对文件系统的,是文件的缓存

buffercache是针对磁盘块的缓存

简单说来pagecache用来缓存文件数据,buffercache用来缓存磁盘数据。

每一个pagecache包含若干buffercache(page -> buffer -> disk block)

内存管理系统和VFS只与pagecache交互

内存管理系统负责维护每项pagecache的分配和回收,同时使用mmap方式在访问时负责建立映射

VFS负责pagecache与用户空间的数据交换

2.6内核中的buffercache和pagecache在处理上是保持一致的

free命令中的cache和buffers:

cache为pagecache,文件系统的cache,可以反映cache的文件个数

buffers为buffercache,是块设备的读写缓冲区

3) 文件相关

/proc/sys/fs/file-max 所有进程可打开的句柄数量之和

/proc/sys/fs/file-nr 目前使用的文件句柄数量

/proc/sys/fs/nr_open 单个进程最大可创建的文件句柄数

/proc/sys/fs/inode-nr

4) 网络相关

/proc/sys/net/core/rmem_default 读缓冲区大小的默认字节数

/proc/sys/net/core/wmem_default 写缓冲区大小的默认字节数

/proc/sys/net/core/rmem_max 读缓冲区大小的最大字节数

/proc/sys/net/core/wmem_max 写缓冲区大小的最大字节数

/proc/sys/net/ipv4/tcp_mem

/proc/sys/net/ipv4/tcp_rmem

/proc/sys/net/ipv4/tcp_wmem

/proc/sys/net/ipv4/tcp_keepalive_time

/proc/sys/net/ipv4/tcp_keepalive_intvl

/proc/sys/net/ipv4/tcp_keepalive_probes

/proc/sys/net/ipv4/tcp_tw_reuse

/proc/sys/net/ipv4/tcp_tw_recycle

/proc/sys/net/ipv4/tcp_fin_timeout

/proc/sys/net/core/somaxconn

上一篇:一个简单SpringBoot例子


下一篇:如何在sublime+chrome中调试php代码?