我正在尝试确定 tomcat 集群的大小。关键因素很可能是:
- 我们决定使用的集群内存缓存的大小。例如,如果我们想要支持 100GB 内存缓存,那么我们可能需要 50 个实例(假设最大堆大小为 2GB),大概需要 5 台服务器(假设 RAM 为 24GB)。
- 请求延迟,针对某些预定义目标。
- 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。除非您有将要运行的应用程序的性能指标和使用情况统计数据,否则这是一个等待并根据需要扩展的场景。