Tal*_*lia 5 amazon-ec2 amazon-web-services amazon-cloudwatch
危险!
除非您准备好崩溃和/或强制重启系统,否则不要运行此命令来“测试”它。
我采取的步骤:
我预计实例状态检查会失败。但是,两个状态检查在 20 多分钟后继续通过。该实例对 SSH 和 ping 没有响应,尽管 nmap 报告端口 22 已打开。
我希望使用状态检查来确定实例是否有响应,并使其自动缩放组终止并替换它,但看起来我无法做到这一点。
我有两个问题:
我的 SSH 会话:
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-57-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Thu Jul 9 18:50:39 UTC 2015
System load: 0.0 Memory usage: 7% Processes: 47
Usage of /: 16.8% of 7.75GB Swap usage: 0% Users logged in: 0
Graph this data and manage this system at:
https://landscape.canonical.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
Last login: [[redacted]]
ubuntu@ip-172-31-18-225:~$ :(){ :|: & };:
[1] 1218
ubuntu@ip-172-31-18-225:~$ -bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
Connection to 52.2.62.141 closed.
Run Code Online (Sandbox Code Playgroud)
编辑:所以,我的真正目标是缩小状态检查检查的内容与检查我的应用程序是否正在运行之间的差距。如果状态检查确实检查内核是否正常运行,在我看来,我可以使用内核软件看门狗(如 softdog 内核模块)来缩小差距。
由于状态检查已经负责确保内核已启动,因此使用softdog内核模块就足够了。尽管这是一个软件看门狗计时器,但它是一个内核模块这一事实意味着看门狗本身变得无响应的任何实例也会被AWS 执行的实例状态检查检测到,从而终止 EC2 实例。
以下是我在设置脚本中所做的操作(这是一个 Ubuntu AMI):
cat >>/etc/modules <<EOF
softdog
EOF
apt-get install watchdog
cat >>/etc/watchdog.conf <<EOF
interval = 10
logtick = 60
max-load-1 = 24
max-load-5 = 18
max-load-15 = 12
min-memory = 65536
watchdog-device = /dev/watchdog0
ping = 8.8.8.8
interface = eth0
test-binary = /path/to/my/health/check/script.sh
test-timeout = 30
realtime = yes
priority = 1
EOF
...other setup stuff...
reboot
# If you don't want to reboot, you can instead do:
modprobe softdog
service watchdog restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |