Я бы советовал всё-таки попробовать профайлер и тесты — ведь вам нужно увидеть факт замедления (1), установить его происхождение (2) и доказать всё это заказчику (3).
Если вы считаете, то с помощью логгирования и прочих процедур вы уже получили достаточно оснований утверждать, что сервер работает в 3 раза медленнее, значит вы готовы к разговору с клиентом.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, pagrus, Вы писали:
P>>Ну например.
P>>Используя профайлер вы находите, какие именно вызовы съёдают большую часть времени. Т.е. найдите сервлетный service() метод, посмотрите дерево вызовов под ним, что сколько времени заняло. Спускайтесь по дереву вызовов до классов JDK. Сравните это с результатом профайлинга на WinXP. Очень вероятно что тут же найдёте узкое место и поймёте, в приложении ли оно. P>>Если проблема не видна — посмотрите выше service(), возможно проблема в самом tomcat. А>Профайлером конечно не смотрел, но логгирование показывает что замедление на разных вызовах пропорциональное, как будто тактовая частота процессора меньше в 3 раза.
P>>Кстати посоветуйте клиенту убедиться, что сервер имеет достаточно свободной физической памяти и не свопится. А>Физической памяти полно свободной. Вот что показывает top для процесса томката: А>
А> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
А>20982 user 25 0 1227M 156M 7536 S 0.0 6.2 0:12.43 java
P>>Также они могут попробовать включить/выключить APR для tomcat и последить за результатами. А>Включал. Существенной разницы не заметил.
Re[6]: Разница в производительности приложения на Windows и
От:
Аноним
Дата:
29.08.08 14:15
Оценка:
Здравствуйте, pagrus, Вы писали:
P>Я бы советовал всё-таки попробовать профайлер и тесты — ведь вам нужно увидеть факт замедления (1), установить его происхождение (2) и доказать всё это заказчику (3).
P>Профайлер даст вам вот такую картинку: http://www.ej-technologies.com/products/jprofiler/images/invocation_tree_fsb.png
У меня не получается JProfiler запустить на удаленном сервере через терминал без x window.
Re[7]: Разница в производительности приложения на Windows и
Это уже другой вопрос — отчасти технический, отчасти организационный.
Технический — понять, какие есть варианты для запуска профайлера-клиента и исследуемого приложения.
Организационный — добиться от заказчика содействия в промежуточных вопросах, которые вам нужно решить для основной задачи. Например, открыть порты, организовать VNC-доступ, и т.д.
Ни в том, ни в другом не должно быть большой мистики.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, pagrus, Вы писали:
P>>Я бы советовал всё-таки попробовать профайлер и тесты — ведь вам нужно увидеть факт замедления (1), установить его происхождение (2) и доказать всё это заказчику (3).
P>>Профайлер даст вам вот такую картинку: http://www.ej-technologies.com/products/jprofiler/images/invocation_tree_fsb.png
А>У меня не получается JProfiler запустить на удаленном сервере через терминал без x window.
Re: Разница в производительности приложения на Windows и Lin
Я бы на вашем месте прежде всего развернул у себя конфигурацию аналогичную стоящей у заказчика (и даже если возможно скопировал бы томкат у заказчика с его настройками, может там логирование включено и все тормозится, или какие нибудь фильтры запросов). По крайней мере было бы от чего отталкиваться при анализе проблемы начиная с чистой конфигурации и сравнивая с конфигурацией заказчика.
Здравствуйте, Аноним, Вы писали: А>Сейчас заметил что менеджер томката показывает разную архитектуру ОС. У заказчика i386, у нас — x86. Это не может никак влиять на производительность?
1. RC — это еще не релиз, NB, к примеру, на RC и бетах тормозил заметно сильнее, чем в релизе;
2. Вполне может быть, надо смотреть детально. i386 — насколько я понимаю, поддержка старого поколения процессоров. Сейчас лучше что-то типа i686 — поддержка оптимизации последних моделей процессоров. Тут можно посмотреть, с какой опцией лучше всего дружит процессор заказчика (если он модельного ряда последних двух лет — лучше i686).
А>Даже не знаю в какую сторону двигаться, очень нужна помощь.
не знаю, поможет ли. у нас большие проблемы с производительностью под linux+java1.6 на платформе i386. при том, что java 1.4 там же дает хорошие результаты (разница где-то как раз в 3 раза). вроде нашли решение, но пока с уверенностью сказать не могу (тестируем): попробуй 64-битную платформу для линух-сервера.