我正在运行Monit来监视DigitalOcean上的ubuntu服务器上的cpu使用情况。然后执行一些命令来启动或停止负载均衡器后面的其他服务器。
这是我的密码;
check system host_name
if cpu usage > 50% for 5 cycles then exec "/bin/bash /var/www/start.sh"
if cpu usage < 30% for 5 cycles then exec "/bin/bash /var/www/stop.sh"
第一次运行后,Monit关闭一台服务器并进
我正在开发一个客户端-服务器应用程序。我有一个无限的while循环来检查客户端(或服务器)是否发送了数据。
while (true)
{
// do things
}
但是,这方面的最佳实践是什么呢?使用上面的代码,当服务器接受客户端时,系统的CPU会跳到100%。
如果我把Threading.Thread.Sleep(500)放在循环的末尾,CPU的使用率会更好,但我不知道这是不是最好的方法,或者它是否应该有所不同。
(我知道我能够异步获取数据--但我的问题不是这个,而是关于while循环的最佳实践,这样应用程序就不会完全消耗CPU)
是否有任何方法可以在不通过SSH连接到客户的情况下获得KVM中vm的cpu使用和内存使用情况?我的意思是,虚拟机管理器是如何获得CPU使用率(图表)的?我也需要cpu使用率和内存的百分比。有人知道如何通过libvirt与kvm通信吗?我只需要尽可能多地获得cpu使用量和内存,而不需要SSH。
场景:我正在尝试构建一个包含负载均衡器(主机)+3服务器( am )的设置,然后它会通知我这3台服务器的cpu使用情况,这样如果我需要提供另一台服务器,我就会知道什么时候。
谢谢你的帮助。真的很感激。