我们在两台服务器上运行Apache solr。 不幸的是,索引(猜测)服务器负载过重。 我们每次都手动重启tomcat。
当我谷歌我find两种方式重新启动tomcat自动使用VM选项
-XX:OnOutOfMemoryError="<cmd args>; <cmd args>"
所以我相信下面的命令将会在每当我们发现内存不足时重新启动tomcat
-XX:OnOutOfMemoryError="/etc/init.d/tomcat restart"
但是我怎样才能将这个过程同步到另一台服务器。 两台服务器都处于分片状态。
谁可以帮我这个事?
而不是从OnOutOfMemoryError触发器直接运行tomcat重启,你可以运行一个简单的脚本,它将在本地服务器上执行,ssh到远程执行相同的操作。
我会添加一个触发器到一些监视检查,只是运行一个脚本,在两个系统上重新启动tomcat。 也许在重启之前和之后做一些理智的检查。
您可以使用Fabric( http://www.fabfile.org/ )或Rex( http://www.rexify.org/ )编写这些脚本。
另外我会试图找出为什么tomcat冻结。 如果内存不足,也许你可以给jvm更多的内存?
如果您需要监视jvm的内部内存使用情况,可以使用http://www.jolokia.org/将其集成到nagios或其他监视工具中。