linux 巨页使用测试

Posted 安庆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 巨页使用测试相关的知识,希望对你有一定的参考价值。

这里记录测试巨页的mmap使用,测试代码和《linux 巨页使用测试以及勘误1》类似。

跟踪脚本如下:

probe kernel.function("hugetlb_reserve_pages").return
{
printf("hugetlb_reserve_pages pid=%d,ret=%d\r\n",pid(),$return);
}
probe kernel.function("hugetlb_acct_memory").return
{
print_backtrace();
printf("hugetlb_acct_memory pid=%d,ret=%d\r\n",pid(),$return);
}
probe kernel.function("gather_surplus_pages").inline
{
print_backtrace();
printf("gather_surplus_pages pid=%d,resv_huge_pages=%d,delta=%d,free_=%d,order=%d\r\n",pid(),$h->resv_huge_pages,$delta,$h->free_huge_pages,$h->order);
}
probe kernel.function("__alloc_buddy_huge_page").return
{
print_backtrace();
printf("gather_surplus_pages pid=%d\r\n,nr_huge_pages=%d,surplus_huge_pages=%d,order=%d,nr_overcommit_huge_pages=%d,ret=%d\r\n",pid(),$h->nr_huge_pages,$h->surplus_huge_pages,$h->order,$h->nr_overcommit_huge_pages,$return);
}

 

跟踪结果如下:

当/proc/sys/vm/nr_hugepages设置为0,则由于__alloc_buddy_huge_page分配内存失败而报内存不足,将其设置为我们测试代码想要分配的内存除以2M,圆整再加1,则可以分配到内存。

当mmap分配成功之后的addr,则可以使用memcpy或者read系统调用去使用。但write调用因为没有实现,而不能执行。



















以上是关于linux 巨页使用测试的主要内容,如果未能解决你的问题,请参考以下文章

Debian百科巨页

炫“库”行动-人大金仓有奖征文,内存巨页引发OOM的经典案例

Linux在测试中的主要使用场景都有哪些?

linux测试网速的工具

linux如何做软件测试,都会用到哪些软件呀,测试工程师都要会啥

linux使用curl进行接口测试