IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

systemtap观察page_cache的使用情况

Erlang非业余研究 2011-03-22 23:46:42 累计浏览 2,295 次
本机暂存
    在规划服务器的内存使用的时候经常需要知道应用在理想情况下会使用多少的pagecache, 我们好预先把这个内存预留出来.

    这个值操作系统没有提供可查看的管道,我们只能自己写个脚本来实现.

    下面的systemtap脚本每隔N秒显示下当前os下头10个文件占用多少的pagecache, 降序排列.

$ cat > pagecache.stp
global __filenames
global pagecache

probe vfs.add_to_page_cache
{
  pagecache[ino]++;
}

probe vfs.remove_from_page_cache
{
  pagecache[ino]--;
}

probe generic.fop.open
{
__filenames[ino]=filename
}

function find_filename(ino)
{
  if (ino in __filenames)
    return __filenames[ino];
  else return sprintf("N/A ino:%d", ino);
}

probe timer.s($1)
{
  ansi_clear_screen();
  printf ("%50s %10s\\n", "FILENAME", "COUNT")
 foreach( pages = ino in pagecache- limit 10)
 {
   if(pages)
   printf("%50s %10d\\n", find_filename(ino), pages);
 }

}

CTRL+D
$ sudo sysctl vm.drop_caches=3

$sudo stap pagecache.stp  1
                                          FILENAME      COUNT
                                   librpmdb-4.4.so        173
                               libpython2.4.so.1.0        153
                                 libxml2.so.2.6.26        107
                                  N/A ino:68781310        100
                                     __m2crypto.so         91
                           libglib-2.0.so.0.1200.3         64
                                        libperl.so         53
                                     librpm-4.4.so         52
                                        pyexpat.so         45
                                libreadline.so.5.1         38

    玩得开心!

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. Linux如何统计进程的CPU利用率 (累计阅读 16,308)
  2. 我的 RHCA 之路 (累计阅读 14,013)
  3. Linux内存点滴 用户进程内存空间 (累计阅读 13,232)
  4. 给程序员新手的一些建议 (累计阅读 13,090)
  5. Linux 性能监控、测试、优化工具 (累计阅读 13,013)
  6. 关于linux内存free的一些事情 (累计阅读 12,870)
  7. ps - 按进程消耗内存多少排序 (累计阅读 12,690)
  8. Google怎么用linux (累计阅读 12,583)
  9. Linux Used内存到底哪里去了? (累计阅读 11,868)
  10. find命令的一点注意事项 (累计阅读 11,867)