我是 Apache Derby 的新手,我被要求用 1000 个并发线程测试 Derby 数据库的性能,在每个线程中,打开一个连接,在一张表上执行一次插入、选择、更新查询。
我实现了模拟代码并在我的本地机器(Windows 7)上进行了测试,我在其中以网络模式运行我的 Derby 数据库。
即使我从我的 LAN 中的另一台 Windows 7 机器(仅 Java 客户端,DB 仅在我的机器上运行)测试了相同的内容。
当我在 Ubuntu 系统上测试上述模拟时,我面临着很多问题。打开每个连接需要 5xxx 毫秒,而在其他情况下需要 2xx 毫秒。
如果我模拟多达 1000 个线程,则意味着获得每个连接的时间也会增加。通常它在 60000 毫秒以上。
我观察到,在 Ubuntu 系统的情况下,wireshark 列出了以下错误。
- 协议:ICMP
- 信息:目的地不可达(端口不可达)。
令人惊讶的是,当我在 ubuntu 机器上安装 Kaspersky 时,我没有收到此错误。我能够在这样的 3xx 毫秒内获得连接。
我也尝试实现连接池(Tomcat 池、DBCP、C3p0)。
无论如何,在 ubuntu 机器上没有防病毒软件需要太多时间才能获得连接,我在 Wireshark 中看到了上述错误。
请帮我解决这个问题?
提前致谢。