我们有一台 4GB RAM 的生产服务器,运行 Debian 和 Web 服务器以及各种其他应用程序。使用 命令行进行检查htop
,在任何给定时间大约使用 3.7-3.8GB 的 RAM。
服务器没有出现运行缓慢或无响应的迹象。以接近 100% 的 RAM 利用率运行这样的服务器是否正常,或者将来会出现一些问题?
输出free
:
total used free shared buff/cache available
Mem: 3957164 3108136 189128 22348 659900 567960
Swap: 4108284 143104 3965180
以下是 htop 输出的屏幕截图: 氢能顶盖 (通常 RAM 使用率较高,服务器最近重新启动过)
答案1
当可用内存接近 0% 时,内核会尝试越来越激烈的措施来确保有部分可用内存。快速将 RAM 调出到存储会导致速度急剧下降。OOM 终止程序会在终止进程时将性能降至零。这仍然比恐慌和重启要好。
关键词是可用的内存。Linux 将使用任何可用的内存作为缓存,这些内存会自动分配。必须引用经典 FAQ:https://www.linuxatemyram.com/
htop 报告的利用率约为 77%,页面空间使用率为 1%。充分利用它很好,但 free 输出显示高出几个百分点,并且开始交换。再多几 GB 的 RAM,最多 6 或 8 GB,将是一个不错的缓冲。特别是如果它是你的生产机器之一。