我有32GB内存。 SSD 和非 SSD 驱动器。
我将 Linux 安装到非 SSD 驱动器,但我更喜欢 SSD 作为 /var 目录,并且我没有创建交换空间,因为内存较高。
我知道物理内存+交换区=虚拟内存。我知道linux有大页和内存映射文件功能。内存映射文件使用虚拟内存,我不知道处理文件的策略。即使物理内存很高,交换也有好处吗?
我将处理 3GB gzip 压缩文件以导入 mysql 数据库。我将创建应用程序 cpp boost 库 gzip 内存映射流和 mysql 本机客户端库。
- 我的第一个目标是检测文件的差异。我要使用
ON DUPLICATE KEY UPDATE attempt_count = attempt_count + 1
. - 我还需要全文搜索功能,并且需要过滤一些标准,例如字符串长度。
- 我应该集成一个管理界面。
对此的最佳配置是什么?
答案1
需要交换的情况有: 休眠,以及从 RAM 中换出内存以避免 RAM 耗尽。
因此,如果您有足够的 RAM 来保存工作集,那么您只需要交换休眠即可。如果您的工作集非常大,则可能需要交换。然而,交换是否是一个好主意将取决于工作模式。有些模式会导致交换抖动,有些则不会。
它添加了内存映射文件和可执行文件。内核只会将需要的内容加载到 RAM 中,并丢弃不需要的内容。不需要交换,因为文件是后备存储(不是交换)。