我有一个奇怪的问题.
每当我停止Tomcat时,SSH变得非常缓慢,几乎完全没有响应. SSH接受任何命令需要一分钟甚至更长时间.当我终于让Tomcat重新开始时,一切都恢复正常.
每当我停止Tomcat时,SSH变得非常缓慢,几乎完全没有响应. SSH接受任何命令需要一分钟甚至更长时间.当我终于让Tomcat重新开始时,一切都恢复正常.
这发生在非常繁忙的服务器上.问题是我需要经常因为应用程序升级而停止Tomcat.升级通常需要几秒钟,但这需要将近10分钟,因此我们遇到了不必要的停机时间.
我看到的一件事是当我停止Tomcat top时,在100%cpu上显示了很多ksoftirqd / X进程.这可能是问题吗?
内核版本是:2.6.18-308.11.1.el5
Red Hat版本是:Red Hat Enterprise Linux Server 5.9版(Tikanga)
知道为什么会这样吗?
解决方法
慢ssh连接/ ssh滞后是高负载的症状.高负载通常是由io阻塞引起的,这通常是由交换引起的.
要检查您的负载,运行正常运行时间或顶部,当ssh没有响应时,您可能会看到超过10的负载数.在正常使用期间,它们可能会徘徊在2以下.
运行free或top来查看你的内存使用情况,你可能会看到很多交换.
一旦找到根症状,就可以搜索为什么“tomcat交换关闭”或“tomcat高负载”,这可能是因为它试图写一些存储在缓存中的东西或交换到磁盘.你的tomcat jvm max heap size是否大于你拥有的内存量?
也许连接到您的webapp的东西在创建DoS场景时会不断重试.
这可能都是您的webapp特有的,所以使用一般条款.