не уверен, должен ли этот вопрос быть здесь или на сервере, но он связан с java, поэтому вот он:
У меня есть два сервера с очень похожей технологией:
- server1 - это Oracle / Sun x86 с двумя процессорами x5670 (2,93 ГГц) (по 4 ядра в каждом), 12 ГБ ОЗУ.
- server2 - это Dell R610 с двумя процессорами x5680 (3,3 ГГц) (по 6 ядер), 16 ГБ ОЗУ.
оба работают под управлением Solaris x86 с точно такой же конфигурацией.
оба имеют турбо-ускорение и не имеют гиперпоточности.
Поэтому
server2 должен быть НЕМНОГО быстрее, чем server1.
Я запускаю следующую короткую тестовую программу на двух платформах.
import java.io.*;
public class TestProgram {
public static void main(String[] args) {
new TestProgram ();
}
public TestProgram () {
try {
PrintWriter writer = new PrintWriter(new FileOutputStream("perfs.txt", true), true);
for (int i = 0; i < 10000; i++) {
long t1 = System.nanoTime();
System.out.println("0123456789qwertyuiop0123456789qwertyuiop0123456789qwertyuiop0123456789qwertyuiop");
long t2 = System.nanoTime();
writer.println((t2-t1));
//try {
// Thread.sleep(1);
//}
//catch(Exception e) {
// System.out.println("thread sleep exception");
//}
}
}
catch(Exception e) {
e.printStackTrace(System.out);
}
}
}
Я открываю perfs.txt и усредняю результаты, получаю:
- сервер1: среднее = 1664, обрезка 10% = 1615
- сервер2: среднее = 1510, обрезка 10% = 1429
что является несколько ожидаемым результатом (server2 perfs> server1 perfs).
Теперь я раскомментирую часть "Thread.sleep (1)" и снова протестирую, результаты теперь:
- сервер1: среднее = 27598, обрезка 10% = 26583
- сервер2: среднее = 52320, обрезка 10% = 39359
на этот раз server2 perfs
это не имеет никакого смысла для меня ...
очевидно, я ищу способ улучшить производительность server2 во втором случае. должна быть какая-то другая конфигурация, и я не знаю, какая именно.
ОС идентичны, версия Java идентична.
это может быть связано с количеством ядер?
может это настройка BIOS? хотя BIOS отличается (AMI против Dell), настройки кажутся довольно схожими.
Я скоро обновлю BIOS Dell и проведу повторное тестирование, но я был бы признателен за любую информацию ...
спасибо