Мы тут как бы натолкнулись на стену, поэтому я решил, что стоит спросить на этом сайте.
У нас есть процесс Java, который обслуживает старые RPC-подключения Sun в качестве уровня совместимости в новой системе. На старых машинах SuSE (2007 Xeon с 2.6.16) все работало просто отлично. В то время как мы пытались перейти на более современную платформу Xeon E5-2670 с RHEL 2.6.32, процесс выполняется, но он привязывает все процессоры под нагрузкой и отвечает МЕДЛЕННО, чем предыдущий комплект. Загрузка на стороне клиента одинакова, мы используем более быстрый серверный диск, такое же количество физических ядер (хотя теперь x2 из-за гиперпоточности), ту же оперативную память (которая не голодает и не переставляется).
Профилирование на самом деле ничего не показывает. Было некоторое подозрение о том, что диск работает медленнее из-за записи журналов (раньше было ext3, теперь ext4+acl), но это, кажется, не большая проблема, и "загрузка журналов" такая же. iostat, netstat все выглядит нормально.
Я подозреваю, что что-то изменилось в обработке RPC между ядрами, но, кажется, трудно найти много информации, так как (я предполагаю) связь типа Sun RPC сегодня не так популярна.
Какие-нибудь мысли? Я не ожидаю, что кто-то обязательно решит проблему, так как не могу рассказать об этом слишком много, но, возможно, указатели на то, на что обратить внимание при диагностике RPC и издержек ядра?
Спасибо!