У меня есть сценарий оболочки, который я запускаю как на Linux, так и на Sun Solaris, однако есть существенная разница во времени, которое требуется сценарию для выполнения.

Когда я отладил скрипт на обоих серверах с помощью 'set -x', я обнаружил, что цикл for, получающий вывод из оператора 'awk', занимает в Linux гораздо больше времени, чем в Solaris. после установки опции отладки я могу наблюдать построчное выполнение скриптов и наблюдать, что производительность в linux намного ниже, даже если на обоих серверах выполняется один и тот же набор строк.

Следующее является частью сценария, занимающего время:

for k in `awk ' {print $1 }'  StartAppTemp`

Также я рассчитал время, затраченное на цикл for, используя следующую команду:

time `for k in `awk ' {print $1 }'  StartAppTemp``

O/P на Linux:

real    0m0.002s
user    0m0.000s
sys     0m0.003s

О / п на Солярисе

real    0m0.00s
user    0m0.00s
sys     0m0.00s

Здесь точность составляет всего 2 цифры после десятичной.

Полный сценарий:

for k in `awk ' {print $1 }'  StartAppTemp`;do
ps -p $k >/dev/null;
if test $? -eq 0 ; then
echo "running";
else
echo "Stopped";
fi;
done;

Есть ли способ повысить производительность в Linux?

0