【发布时间】:2015-11-18 22:06:27
【问题描述】:
我正在使用 R 编程语言在 Linux 服务器上处理大图像,因此我希望大部分 RAM 将用于图像处理和文件写入过程。
但是,服务器在似乎需要之前很久就使用了交换内存,从而显着减慢了处理时间。见下图:
这表明我将大约 50% 的 RAM 用于图像处理,大约 50% 似乎保留用于磁盘缓存(黄色),但正在使用 10Gb 的交换空间!
我看到交换被吃掉了,但当 RAM 的使用率比这张图片中显示的高时,它并没有发生。在将处理过的数据写入 GeoTiff 文件期间,交换似乎被吃掉了。
我的工作理论是磁盘写入过程正在使用大部分磁盘缓存区域(黄色区域),因此黄色实际上对服务器不可用(通常假设磁盘缓存 RAM)?
这听起来合理吗?当 RAM 显然可用时,是否还有其他使用交换的原因?
【问题讨论】:
-
您的用户是否有系统资源配额?虽然 AFAIK 可以限制总地址空间,但如果超过它,您将不会获得任何 额外 交换。
-
不,我的用户没有内存限制配额。我过去在不使用交换的情况下使用了高达 64Gb 的内存。它似乎只发生在这种情况下。