如果虚拟内存太低自动重启服务器

Suk*_*ngh 4 linux varnish centos5 drupal-6 apache-2.2

我的服务器上运行着相当多的软件:httpd、varnish、mysql、memcache、java..

他们每个人都使用了一部分虚拟内存,并且 varnish 被配置为分配 3GB 的内存来运行。

由于 100K 的高流量负载,我们的服务器内存不足并调用了 oom-killer。我们必须重新启动服务器。

我们有 8GB 的​​虚拟内存,由于某些原因我们无法扩展到更大的内存。

我的问题是 - 是否有任何自动化脚本可以监控剩余多少虚拟内存并根据某些标准,假设剩余 500MB 是否会自动重新启动服务器?

我知道这不是正确的解决方案,但我们必须这样做,否则我们不知道服务器何时会出现 OOM,当我们知道并重新启动服务器时,我们失去了访问用户。

Val*_*ami 7

如果我理解正确,您需要如下内容:

  1. 检查 VPS 上剩余多少内存。
  2. 如果剩余 500M 内存,请重新启动 VPS。

这可以按如下方式完成

  1. 编写一个脚本来检查剩余多少内存并重新启动 VPS
  2. 将此脚本添加到 crontab 以自动执行任务。

例如

#!/bin/bash

mem=$(free -m | awk '/Mem:/{print $4}')

(( mem <= 500 )) && reboot
Run Code Online (Sandbox Code Playgroud)

使脚本可执行

chmod +x scriptname // 注意不要添加扩展名

将脚本添加到 cron

crontab -e

* * * * * user_to_run_the_script /path/to/the/script
Run Code Online (Sandbox Code Playgroud)

希望你明白。

  • 这是对问题的直接回答,这很好。这也是一个可怕的想法。“只需重新启动服务器”几乎 *** 从来没有 *** 正确的解决方案 - 找到并修复根本原因(内存泄漏、未充分配置的系统等),不要在给定参数超过临界点。 (4认同)