您的位置:首页 > 运维架构 > Linux

linux:systemtap观察page_cache的使用情况

2014-09-05 09:41 197 查看
http://blog.yufeng.info/archives/1195

本文链接地址:systemtap观察page_cache的使用情况

在规划服务器的内存使用的时候经常需要知道应用在理想情况下会使用多少的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-
limit10)
{
if
(pages)
printf
(
"%50s
%10d\n"
,
find_filename(ino),pages);
}
}
CTRL+D
$
sudo
sysctl
vm.drop_caches=3
$
sudo
stap
pagecache.stp1
FILENAME
COUNT
librpmdb-4.4.so
173
libpython2.4.so.1.0
153
libxml2.so.2.6.26
107
N/A
ino:68781310100
__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
#拷贝个文件看看pagecache的变化
$
dd
if
=/dev/zero
of=
test
.dat
count=1024bs=4096
玩得开心!

PostFooterautomaticallygeneratedbywp-posturlpluginforwordpress.

Relatedposts:

调查用户空间程序某函数最常调用路径
用systemtap来修改下linux内核变量的值
Systemtap辅助设置tcp_init_cwnd,免对操作系统打Patch
再谈systemtap在ubuntu
10.10下的安装
Linux下谁在切换我们的进程

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐