Tag: scalability

Tomcat使用Jersey Jax-RS在单个服务器上执行15K req /秒

我尝试在VPS上测试一些东西,并且每秒接近10K请求,这是一个simple ‘hello world’ servlet ,更不用说调用membase了。 我的VPS是2 x Intel Xeon X5570,四核“Nehalem”架构。 注意:我不是java专家,也不是tomcat专家,这是默认设置。 有没有其他人可以处理如此高流量的问题? 我使用了apache bench,我运行了大概4-5次,向服务器做了大约100K的请求。 原创: 如何在tomcat上处理2000多个请求/秒?

动态增加java堆空间

我编写了一个java程序,用于测试具有不同处理器数量的不同机器上的几个multithreading算法的速度。 在某些机器上,merge sort *失败,因为它需要一个相当大的堆空间来处理非常大的数组。 在运行程序之前,我可以自己轻松地更改java堆空间,但我觉得更强大,更简单的方法是从程序本身执行此任务。 有没有办法在java程序的过程中从虚拟机请求/实现更多的堆空间? 注意:我确实理解我可以用“java -Xmx1g Program”这样的脚本执行程序; 我对这个问题的好奇心部分是学术性的。 *我的实现不会在线合并。 它需要O(n)额外的内存。

为什么这个Java代码不使用所有CPU内核?

附加的简单Java代码应该在使用正确的参数启动时加载所有可用的cpu内核。 例如,你开始使用它 java VMTest 8 int 0 它将启动8个线程,除了循环并将2添加到整数之外什么都不做。 在寄存器中运行的东西,甚至不分配新的内存。 我们现在面临的问题是,当运行这个简单的程序(当然有24个线程)时,我们没有加载24核机器(AMD 2个插槽,每个12个核心)。 类似的事情发生在每12个线程或更小的机器的2个程序。 所以我们怀疑JVM(Linux x64上的Sun JDK 6u20)不能很好地扩展。 有没有人看到类似的东西或有能力运行它并报告它是否在他/她的机器上运行良好(> =仅8个核心)? 想法? 我在带有8个内核的Amazon EC2上尝试过,但虚拟机似乎与真正的盒子不同,因此加载的行为非常奇怪。 package com.test; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; public class VMTest { public class IntTask implements Runnable { @Override public void run() { int i = 0; while (true) { i = […]