1

我是 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 中看到了上述错误。

请帮我解决这个问题?

提前致谢。

4

1 回答 1

0

当然听起来像一个网络问题。您是否尝试过使用 ping、netstat、traceroute 等较低级别的工具进行调查?

特别是,寻找两个系统之间的名称解析问题,因为这些问题通常会导致像这样的网络速度变慢。每台机器是否能够执行反向 DNS 查找(按地址获取名称)?

于 2012-09-03T14:42:10.567 回答