Mac.getInstance () для HmacSHA1, требующего возрастов для выполнения - PullRequest
1 голос
/ 26 мая 2011

Недавно я столкнулся с проблемой развертывания при вызове Mac.getInstance("HmacSHA1").
Выполнение этого одиночного вызова на этом конкретном сервере может занять до 10 минут, тогда как на других машинах его выполнение происходит мгновенно.

Загрузка ЦП также резко возрастает во время вызова.

Вот несколько подробностей о сервере:

  • ОС: CentOS 5.6 Final (ядро2.6.35.8-16, i686);
  • JVM: JDK от Sun 1.6.0_25 (32 бита);
  • Процессор: Процессор Intel Core2 Duo(E8400 @ 3,00 ГГц);
  • Память: 2 ГБ ОЗУ;
  • Выделенный физический сервер.

Любые подсказки о том, что может бытьпроблема здесь?

1 Ответ

3 голосов
/ 26 мая 2011

Я подозреваю, что у вас мало энтропии в системе для безопасных случайных чисел.Смотрите эту страницу, чтобы проверить: Проверить доступную энтропию в Linux .И на этот вопрос есть ответы на следующие вопросы: Как решить проблему производительности с помощью Java SecureRandom? В частности, этот параметр Java должен помочь вам:

-Djava.security.egd=file:/dev/./urandom

Это намного быстрее, но немного менее безопасно.

...