У меня есть программа perl (/usr/bin/ckbcomp
), выполняющая очень медленно на только что установленном сервере debian v8. Я нашел его, отлаживая его очень длительное время загрузки.Очень медленное время выполнения скрипта perl
Я сравнил выполнение этого же скрипта на другом сервере, у которого нет этой проблемы, и я закончил с результатом, что они имеют точное выполнение пространства ядра и что проблема, похоже, исходит из кода пользовательской лицензии, Perl.
# slow execution
$ uptime
14:54:16 up 3:19, 1 user, load average: 0.00, 0.01, 0.05
$ time ckbcomp -backspace bs -model pc105 us
real 0m1.927s
user 0m1.900s
sys 0m0.016s
# normal execution
$ uptime
14:49:31 up 12 days, 17:19, 1 user, load average: 0.00, 0.03, 0.09
$ time ckbcomp -backspace bs -model pc105 us
real 0m0.381s
user 0m0.376s
sys 0m0.000s
Вы можете увидеть, сколько времени занимает пользовательское пространство. Выход strace
в основном тот же, и подтверждает вывод time
(такое же количество системных вызовов, одинаковые накладные расходы и почти то же время, что и в пространстве ядра). uptime
используется для отображения нагрузки процессора, поэтому это не проблема с перегрузкой.
Поэтому я предполагаю, что проблема связана с выполнением самого perl, и ltrace
в основном подтверждает это, давая 1.710485 seconds
, проведенный в perl_run()
.
Я понятия не имею, как дальше отлаживать программу perl на debian v8. Решение, подобное буквой, должно быть достаточно хорошим, чтобы понять, где потрачено время.
Perl-интерпретатор на обеих машинах одинаковый. Может быть, это происходит от установленных библиотек ...
Спасибо за вашу помощь
Google «perl profiler» и посмотрите на некоторые пакеты профилирования там для perl ... –
не может быть проблемой аппаратного обеспечения? Удачи. – shellter