问。您如何考虑分配多少交换空间?
Linux(在本例中为 Debian 10)是否需要足够的交换空间来交换一些 VM 页面以及更多的交换空间来交换其他页面,因此 RAM + 交换文件大小需要比总工作集大得多,以免出现问题严重吗?
假设:
- 考虑一下 Google Compute Engine 上的工作机器,每台机器一次运行一个有效负载进程,并且只需要一个 CPU。台式机的经验法则不适用。
- 我们可以选择分配多少个 CPU、磁盘 GB 和 RAM GB,但我们要为此付费。
- Compute Engine N1 机器的最大 RAM/CPU 为 6.5 GB,因此要获得更多内存,我们必须购买更多 CPU 或启用交换。
- 大多数有效负载进程都适合 RAM,但当有效负载进程需要更多内存时,我们不希望它失败或严重崩溃。
- 我们可以配置交换空间大小(以更多磁盘空间为代价)和 swappiness 参数。
- 忽略内存映射文件对节省交换空间的贡献。
- 休眠不适用。
Linux 如何使用交换空间以便我可以选择、调试和调整它的概念模型是什么?虚拟机大小是否受到交换文件大小的限制,以便每个页面都有一个可以交换的位置,并且不需要写出干净的页面?或者虚拟机大小是否接近 RAM + 交换大小?或者介于两者之间,在交换其他页面之前需要大量交换空间来写出一些页面?