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

猜你喜欢

转载自blog.csdn.net/Aquester/article/details/82625966