apache - Tomcat6内存分配与Apache2

标签 apache tomcat ubuntu memory tomcat6

我已经在 Tomcat6 前面安装了 Apache2。

在 Ubuntu 实例上,我使用 8GB RAM 运行 Apache2,因此决定采用以下 apache2.conf 配置。

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          550
    ServerLimit         550
    MaxRequestsPerChild  0
</IfModule>

以上配置是使用以下参数和 this blog post(how to configure apache MPM) 完成的.

Apache Memory Usage (MB): 611.719
Average Proccess Size (MB): 8.26647

在另一个实例中,我有一个运行 8GB RAM 的 Tomcat6。在 Tomcat6 server.xml 中使用了以下配置。

<Connector port="8009" protocol="AJP/1.3" redirectPort="8080" maxThreads="500"/>

我的问题是,

  • 在 Tomcat6 中计算/确定数量 maxThreads 参数的过程/步骤是什么?
  • 应该如何分配内存?

最佳答案

Tomcat6 是一个 Java 应用程序,因此内存分配由 JVM 完成。我想您愿意通过 apache 代理 tomcat,如果是这样的话,通常 1 个 apache 客户端将最终成为 1 个 apache 线程,因此建议 tomcat 中的线程数少于 apache 中的 MaxClients 指令。这就是说,计算 maxThreads 参数可能很困难,具体取决于您的应用程序,每个线程可能会改变其内存使用情况,平均可能有用,但您还必须考虑其他 JVM 内存空间,eden,permgen,...

查看 JVM 内存设置、每个线程堆栈设置,...我认为这就是您正在寻找的内容。

关于apache - Tomcat6内存分配与Apache2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30436305/

相关文章:

jsp - tomcat - 计时器内存泄漏

java - Eclipse Hadoop 插件在尝试连接时显示 "java.io.EOFException"

linux - Xampp 无法在 ubuntu 17.10 上启动

PHP代码没有被执行,但是代码显示在浏览器源代码中

php - Apache 为 Laravel/public 重写

java - 使用 spring/tomcat 的 http 请求响应不正确

java - Jersey 响应的原因短语在 tomcat 7 和 8.5 中不一致

node.js - Mongo 启动 Meteor 时出错

PHP 文件无法在浏览器中打开 - 只能下载。我需要更改什么才能使其正常工作?

apache - 在 Apache 中混合使用 RewriteRule 和 ProxyPass