0

我有这个下面的脚本,它实际上检查 Memcache 服务器是否已关闭,它将启动 Mmecache 服务器。

#!/bin/bash
ps -eaf | grep 11211 | grep memcached
# if not found - equals to 1, start it
if [ $? -eq 1 ]
then
memcached -d -m 16 -p 11211 -u nobody
else
echo "eq 0 - memcache running - do nothing"
fi

如果我通过这种方式在 crontab 中设置这个脚本每 1 分钟运行一次

* * * * * /usr/bin/memcached_autostart.sh

它会以任何方式降低服务器的性能吗?或者可以吗?

请分享你的经验。

4

2 回答 2

4

它不会对服务器性能产生显着影响,尽管您需要在 memcached 已经运行时使其静默,否则每分钟向您发送电子邮件会浪费服务器时间和您的时间。

但是有更好的方法来做到这一点。systemd 和 daemontools 项目都旨在监视服务并保持它们运行,或者如果您使用的是 sysvinit,则可以将 memcached 命令添加到 /etc/inittab 以让 sysvinit 在退出时继续重新生成它。

于 2012-11-11T18:11:21.880 回答
2

它会比每分钟运行一次要慢。您的代码可以通过做一些优化

pidof memcached || memcached…

您也可以代替守护进程 memcached 做类似的事情

while true ; do memcached -m 16 -p 11211 -u nobody ; done

在这种情况下,它将在终止后重新启动而不进行轮询。但是你最好确保如果重启太频繁,你会收到通知——这意味着出现了问题。

于 2012-11-11T18:11:31.100 回答