Настройка производительности системы
Какая аппаратура быстрее?
Естественно, для разных задач подходят разные компьютеры. Например, компьютеры с процессором Alpha обычно быстрее своих Intel-собратьев выполняют расчеты с числами с плавающей запятой. Это значит, что вычисления, связанные с расчетами координат, решением уравнений или моделированием молекул, быстрее выполнит компьютер с процессором Alpha.
В настоящее время процессоры Alpha широко используются в высокопроизводительных серверах от Hewlett-Packard и в других, еще более специализированных системах, таких как суперкомпьютеры Cray и Fujitsu.
Если же речь идет о целочисленных вычислениях, пусть и достаточно громоздких, например, рендеринге, преобразовании графических объектов, 3D-визуализации, где координаты могут быть заданы только целыми числами, процессоры Intel отлично справятся с ними.
Сейчас мы говорили о процессорах Alpha и Intel, но на деле разговор касается двух разных архитектур - RISC и CISC. Процессоры Intel традиционно тяготеют к последней, в то время как процессоры SPARC - к первой. ОС Solaris выпускается в версиях для обеих архитектур, хотя изначально компания Sun не выпускала версию Solaris для Intel, а многочисленные пользователи этой системы во всем мире до сих пор утверждают, что версия для SPARC более производительна и надежна. Это, в частности, объясняется тем, что механизмы обеспечения многозадачности тесно связаны с используемой аппаратурой, и версия Solaris под Intel "подогнана" под архитектуру процессоров Intel и архитектуру аппаратных средств, разработанных для них.
Надо отметить отличные результаты процессора Itanium, сравнительно нового процессора Intel с 64-разрядной архитектурой, который прекрасно показал себя в тесте вычислений с плавающей запятой SPECfp2000, что выгодно отличает его от предшествовавших 32-разрядных собратьев, но менее удачно выступил в целочисленном тесте.
В заключение разговора о предпочтительности той или иной аппаратуры следует сказать, что:
- Для работы Solaris под серьезной нагрузкой, такой как СУБД Oracle с тысячами клиентов и важностью высокой скорости реагирования, система на базе процессоров RISC скорее всего окажется более результативной.
- Независимо от используемой аппаратной платформы конфигурация компьютера должна быть хорошо согласована: быстрый процессор должен работать с быстрой оперативной памятью, а дисковая подсистема (контроллеры и диски ) обязана без задержек отрабатывать команды чтения и записи. Недостаточный объем кэша любого уровня - как кэша процессора на кристалле, так и кэша дискового контроллера - может привести к значительному снижению производительности.
Оценка ситуации: программы надзора за системой
Для оценки производительности системы мы можем задействовать несколько утилит, которые помогут выяснить, насколько загружены различные компоненты компьютера. Исходя из показателей загрузки и наших знаний о реальных потребностях запущенных процессов, мы сможем решить, изменить ли конфигурацию компьютера, настройки системы или же иначе распределить задачи между компьютерами в сети.
Прежде всего, следует выяснить, есть ли в системе узкие места. Например, постоянная загрузка процессора на 100% может говорить о том, что в системе запущено слишком много конкурирующих процессов, или о работе вычислительного процесса, который постоянно требует процессорное время (что вполне нормально, если только ваш сервер не используют хакеры для подбора или расшифровки паролей), или же о том, что мощности процессора недостаточно для решения задач возложенных на него, и этот компьютер требует модернизации (начальство против? - попробуйте распределить нагрузку в сети или поменять работу - что сейчас легче сделать?)
Если одновременно запущенные процессы мешают друг другу, непрерывно требуя процессорное время, увеличивая нагрузку на планировщик задач и отнимая время на постоянное переключение контекстов, следует подумать об их последовательном запуске - на однопроцессорном компьютере это может привести даже к увеличению скорости их выполнения. Если же при этом процессы конкурируют не только за процессорное время, но и за оперативную память, вызывая активный пейджинг, то их последовательный запуск совершенно точно будет более эффективным, чем параллельный: задачи выполнятся быстрее и нагрузка на систему будет меньше.
Для оценки загрузки процессора и состояния памяти (достаточно ли оперативной памяти, не перегружена ли дисковая подсистема свопингом и т.п.) служат программы top и sar. Конкретные примеры применения этих программ даны ниже, в разделе "Эффективное использование памяти и свопинга ". Программа top выводит информацию о процессах, которые наиболее активно занимают процессор:
top last pid: 501; load averages: 0.08, 0.34, 0.40 19:12:00 59 processes: 58 sleeping, 1 on cpu CPU states: 96.2% idle, 0.8% user, 1.0% kernel, 2.0% iowait, 0.0% swap Memory: 128M real, 3596K free, 132M swap in use, 466M swap free PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND 345 root 1 59 0 24M 9972K sleep 0:11 1.14% Xsun 470 root 4 49 0 128M 71M sleep 0:52 1.01% soffice.bin 501 root 1 59 0 2228K 1336K cpu 0:00 0.55% top 461 root 1 59 0 15M 3184K sleep 0:00 0.37% dtterm 467 root 1 49 0 4708K 832K sleep 0:00 0.00% bash 435 root 1 49 0 16M 1760K sleep 0:00 0.00% dtfile 434 root 5 59 0 22M 6304K sleep 0:01 0.00% dtwm 427 root 1 49 0 18M 0K sleep 0:00 0.00% dtsession 436 root 1 59 0 14M 3292K sleep 0:00 0.00% sdtperfmeter 265 root 26 59 0 5480K 1456K sleep 0:00 0.00% htt_server 460 root 1 59 0 3064K 1372K sleep 0:00 0.00% dtexec 315 root 1 59 0 6900K 1324K sleep 0:00 0.00% dtlogin 411 root 1 59 0 3784K 1300K sleep 0:00 0.00% sdt_shell 183 root 3 59 0 5832K 1188K sleep 0:00 0.00% automountd 195 root 13 59 0 5660K 1100K sleep 0:00 0.00% syslogd
Программа sar подобна vmstat и выдает статистику по работе системы, ее можно запустить для выдачи определенных параметров одномоментно или для периодического вывода сведений, например, для десятикратного измерения значений стандартного набора параметров с периодом 5 секунд:
sar 5 10 SunOS sunny 5.9 Generic_112234-03 i86pc 07/03/2004 19:12:34 %usr %sys %wio %idle 19:12:39 0 1 0 99 19:12:44 0 0 0 100 19:12:49 0 1 0 99 19:12:54 4 1 0 95 19:12:59 0 0 0 100 19:13:04 0 1 0 99 19:13:09 5 1 0 94 19:13:14 1 24 66 8 19:13:19 2 35 38 25 19:13:24 3 20 17 60