【发布时间】:2014-08-20 12:25:48
【问题描述】:
我在一个小型 OpenWRT 路由器上运行 tor,由于可用内存有限 (32mb),交换无法避免。
大多数时候路由器不做任何其他事情,但是有时会访问也在路由器上运行的 postgresql 数据库。由于tor不断运行,postgresql被完全换出,前几次访问延迟非常高,这很糟糕,因为它是一个交互使用的系统。
我已经为 postgres 分配了一个不错的值 -15,为 tor 分配了 +15,但它似乎对内存管理影响不大。全局设置 swappiness=1 也不会改变任何事情,因为交换是无法避免的,而且由于 postgresql 大部分时间都没有运行,所以无论如何它都会被交换出去。
有没有办法让 Linux 进程的内存优先级之类的东西? 我查看了 cgroup 特定的 swappiness,但我发现的唯一描述是它影响决策页面缓存与交换。
我正在寻找的是一个参数来告诉 linux 内核不要像其他进程那样积极地换出 postgresql(但我不想锁定整个进程)。 或者为 postgresql 分配 swappiness=80 系统范围和 swapiness=1 会将 postgresql 保留在内存中,同时在需要时换出其他所有内容?
【问题讨论】:
标签: linux memory-management swap cgroups