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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义