Tomcat 可扩展性 - 需要多少台服务器

Tomcat 可扩展性 - 需要多少台服务器

我正在尝试确定 tomcat 集群的大小。关键因素很可能是:

  1. 我们决定使用的集群内存缓存的大小。例如,如果我们想要支持 100GB 内存缓存,那么我们可能需要 50 个实例(假设最大堆大小为 2GB),大概需要 5 台服务器(假设 RAM 为 24GB)。
  2. 请求延迟,针对某些预定义目标。
  3. CPU。

考虑到后者,在负载测试期间我们正在监控顶部。

对于 2 CPU x 8 核服务器,我们看到例如:

top - 15:49:34 up 99 days,  3:00,  5 users,  load average: 1.51, 1.16, 1.04
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.5%us,  0.1%sy,  0.0%ni, 98.4%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:  24551264k total,  6872016k used, 17679248k free,   702612k buffers
Swap: 10731412k total,        0k used, 10731412k free,  4487096k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
18227 tomcat    18   0 1751m 857m  11m S 26.0  3.6   3:15.96 java

对于我们负载测试中的用户数量,我们似乎没有受到 CPU 的限制,但如果我们增加用户数量,哪个会成为规模确定中最有用的统计数据?

  • 平均负载?
  • CPU %us / %id 值?
  • tomcat进程%CPU?

谢谢。

答案1

进程 %CPU 是进程在其运行的核心上使用的资源量。其他 CPU 标头适用于所有 CPU/核心。这不是一个简单的答案,因为 tomcat 的扩展可能很简单,但这实际上是在 tomcat 内部运行的应用程序决定扩展的问题。有些应用程序比其他应用程序使用更多的 CPU,有些应用程序比其他应用程序使用更多的内存或网络 IO。除非您有将要运行的应用程序的性能指标和使用情况统计数据,否则这是一个等待并根据需要扩展的场景。

相关内容