java - websphere 应用程序服务器处理多少个并发请求(WAS 8.0)?

标签 java multithreading concurrency websphere

我们的应用程序服务器前面有 IBM HTTP Server。 我们在压力测试期间运行大约 50 个并发请求。 但我们遇到错误并且无法运行 50 个并发请求。 服务器成功运行 40 个并发请求。内存和CPU利用率还没有达到峰值,有足够的资源来处理请求。但是 我们无法在应用程序服务器日志中找到任何请求。 但在插件日志中我们可以看到该请求。 以下是配置。

根据IBM网站,我的理解是IHS服务器默认能够处理600个并发请求,并且App Server默认有50个线程要处理。

从日志中看到,在plugin中,我推断请求是由ihs服务器处理的,但是应用程序服务器中可用的线程(默认为50)不足以处理50个并发请求。线程和并发请求之间是否存在一对一的映射?我们是否需要增加最大线程数。需要修改哪些参数来增加 IHS、Websphere 应用服务器和插件 conf 的并发请求以增加 websphere 8.0 的并发请求处理

httpd.conf: # Windows MPM 线程限制 2048 每个子线程数 250 每个子项的最大请求数 0

plugin.conf

<ServerCluster CloneSeparatorChange="false" GetDWLMTable="false" IgnoreAffinityRequests="true" LoadBalance="Round Robin" Name="xxxx" PostBufferSize="64" PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60" ServerIOTimeoutRetry="-1">
      <Server ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="xxxx" ServerIOTimeout="900" WaitForContinue="false">
         <Transport Hostname="SA16" Port="9080" Protocol="http"/>
          </Server>
   </ServerCluster>

应用服务器中的 WebContainer 设置 (应用程序服务器 > server1 > 线程池 > WebContainer) 最小线程 - 50 最大线程 - 50

最佳答案

您有 50 个 Web 容器线程,因此您可以在处理 HTTP 请求的同步应用程序代码中拥有大约 50 个线程 - 除非您针对异步 Servlet API 进行编程并使用“其他”线程(例如执行程序 API 之一,或异步) bean API)。

启动负载测试然后查看 WAS 控制台中的性能监视器,或者更简单地通过应用程序服务器 JVM 上的 Kill -3 查看 javacore 中的线程 Activity 应该很简单。

您似乎不需要在 Web 服务器层中进行更多扩展。在该层,IHS 专有的最佳监控是 mod_mpmstats 的输出,它会告诉您网络服务器线程使用情况。

关于java - websphere 应用程序服务器处理多少个并发请求(WAS 8.0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47571101/

相关文章:

java - 创建新行时看不到覆盖光标

java - Oracle 的 jvm 中的 notify() 实现

java - ReentrantLock.lock() 不会阻塞其他线程

haskell - 带 Warp/WAI 的线程安全状态

java - Hibernate类设计,持久化List和HashMap

java - 为什么这个 BufferedReader 没有读取指定的 UTF-8 格式?

java - 交换 Activity 后如何保持 countDownTimer 计数?

java - Java 中的线程

java - 异步线程停止主 UI 线程

java - Executor 关闭后 ScheduledFuture.get() 仍然被阻塞