小编pol*_*lol的帖子

LINUX:如何在内存中锁定进程的页面

我有一个LINUX服务器运行一个具有大内存占用的进程(某种数据库引擎).此进程分配的内存非常大,需要交换(分页)部分内存.

我想要做的是锁定内存中所有其他进程(或正在运行的进程的子集)的内存页面,以便只交换数据库进程的页面.例如,我想确保我可以继续远程连接并监控机器,而不会受到交换影响的过程.即我想要sshd,X,top,vmstat等让所有页面内存驻留.

在linux上有mlock(),mlockall()系统调用似乎提供了正确的旋钮来进行固定.不幸的是,在我看来,我需要在每个进程中进行显式调用,并且不能从不同的进程或父进程调用mlock()(mlock()不会在fork()或evecve()之后继承).

任何帮助是极大的赞赏.提供虚拟披萨和啤酒:-).

linux swap

19
推荐指数
2
解决办法
9652
查看次数

记录主要页面错误的日志内存访问

有谁知道如何获取导致页面错误的内存访问(指针)?我主要对主要的页面错误感兴趣.

关于我正在努力实现的目标的一些背景知识.我有一个具有大内存占用(数据库)的应用程序,我想将分页与对大型数据结构(例如表,使用mmap()分配的索引)的访问相关联.该过程的映射很容易从/ proc // maps中检索.现在,如果我有导致页面错误的内存访问,我可以跟踪访问每个数据结构时导致的页面错误数量.

我认为perf或systemtap可以完成这项工作.有任何想法吗?

linux memory systemtap page-fault perf

5
推荐指数
2
解决办法
1621
查看次数

标签 统计

linux ×2

memory ×1

page-fault ×1

perf ×1

swap ×1

systemtap ×1