服务器

时间:2015-08-18 16:44:21

标签: java centos sleep

设置

我有2台服务器,它们应该基本相同。

即。所有这些值都是相同的:

Red Hat Enterprise Linux Server release 6.1 (Santiago)

Linux server1.fake.com 2.6.32-131.0.15.el6.x86_64 #1 SMP Tue May 10 15:42:40 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.7) (rhel-1.39.1.9.7.el6-x86_64)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)

## alternatives --display java
 link currently points to /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
/usr/lib/jvm/jre-1.5.0-gcj/bin/java - priority 1500
 [...snip...]
Current `best' version is /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java.

全球环境变量也几乎相同。

我们有一些调用Thread.sleep(250)的Java代码。它写于2008年,仍然完全符合我们的要求。它与两台服务器上的代码完全相同,使用相同的用户和权限同时安装在同一位置。

问题

现在我们想要在第二台服务器上开始使用它。

  • 在服务器1上,代码正确暂停250毫秒(... ish)
  • 在服务器2上,代码暂停3分38秒! (约850倍)

研究

  • 代码在两台服务器上的行为一致。
  • 它不是特定于延迟值,即值1在服务器1上暂停1ms,在服务器2上暂停1秒。值100:server1 = 100ms,服务器2~ = 1分钟。
  • 两台服务器都没有负载很重。
  • 我已经检查了libfaketime(谷歌唯一可能引起的事情),但它没有安装在任何一台服务器上。

帮助

有没有人有任何建议可能来自这个巨大的时间延迟?

非常非常困惑!

0 个答案:

没有答案