小编ser*_*erg的帖子

如何防止Tomcat响应缓慢使Apache响应缓慢?

我有一个网站,主要由静态 html 页面组成,偶尔会有 ajax 请求。该站点在 Apache 上运行,ajax 由 Tomcat 处理。

如果 Tomcat 响应变慢(java 无法连接到数据库服务器,或者只是因为任何原因需要很长时间来处理请求) - 它会使整个站点瘫痪:所有静态 html 页面都需要很长时间才能加载(相同带有图像、css、js)。

现在,如果我只是手动停止 Tomcat,一切仍然正常 - 该站点快速且响应迅速,只是 ajax 请求不起作用。

如何使响应缓慢的 Tomcat 不使用所有 Apache 资源,以便无论 Tomcat 发生什么情况,静态页面都可以始终工作?在我的情况下,响应式 html 页面比不使用 ajax 重要得多。

httpd.conf :

Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15

<IfModule prefork.c>
StartServers       16 
MinSpareServers   10 
MaxSpareServers   40
ServerLimit      512 
MaxClients       512
MaxRequestsPerChild  4000
</IfModule>
Run Code Online (Sandbox Code Playgroud)

worker.properties

worker.worker1.port=8888
worker.worker1.reply_timeout=120000
worker.worker1.socket_timeout=150000
Run Code Online (Sandbox Code Playgroud)

服务器.xml

 <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8081" />

<Connector port="8888" scheme="http" protocol="AJP/1.3" redirectPort="8889" minSpareThreads="100"  maxThreads="400" connectionTimeout="20000" acceptorThreadCount="2"/>
Run Code Online (Sandbox Code Playgroud)

tomcat java apache-2.2

7
推荐指数
1
解决办法
5万
查看次数

Java 中的 PermGen 错误,而内存使用率似乎很低

Java 应用程序不时因 PermGen 空间错误而死亡,但是当我查看内存使用情况时,我所知道的似乎很低。

它是一个 Tomcat 应用程序,加上运行着 SOLR 服务器(在同一个 tomcat 下)。

JVM 参数catalina.sh

-Xms1024m 
-Xmx2048m 
-XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=/path/to/logs
Run Code Online (Sandbox Code Playgroud)

错误catalina.out

java.lang.OutOfMemoryError: PermGen space
Dumping heap to /path/to/logs/java_pid22335.hprof ...
Heap dump file created [107041478 bytes in 1.823 secs]
Exception in thread "pool-5-thread-1" java.lang.OutOfMemoryError: PermGen space
Run Code Online (Sandbox Code Playgroud)

现在第一个奇怪的是内存转储只有 100Mb,而堆限制是 2048Mb。当我曾经有“正确的”内存不足错误时,转储文件的大小接近堆限制。

第二件奇怪的事情是 显示的内存使用情况jmap -heap 22335似乎很正常(运行此命令时,java 应用程序仍处于关闭状态):

Attaching to process ID 22335, please wait...   
Debugger attached successfully.
Server compiler detected.
JVM version is 11.3-b02

using thread-local object allocation.
Parallel GC with …
Run Code Online (Sandbox Code Playgroud)

tomcat java permgen solr

5
推荐指数
1
解决办法
4668
查看次数

标签 统计

java ×2

tomcat ×2

apache-2.2 ×1

permgen ×1

solr ×1