Европейский Университет в Санкт-Петербурге
Опубликован: 19.10.2005 | Доступ: свободный | Студентов: 1764 / 169 | Оценка: 4.31 / 3.82 | Длительность: 18:28:00
Лекция 7:

Настройка производительности системы

Аннотация: Лекция описывает способы повышения производительности системы, в том числе посредством настройки системы пейджинга.

Какая аппаратура быстрее?

Естественно, для разных задач подходят разные компьютеры. Например, компьютеры с процессором 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-разрядных собратьев, но менее удачно выступил в целочисленном тесте.

В заключение разговора о предпочтительности той или иной аппаратуры следует сказать, что:

  1. Для работы Solaris под серьезной нагрузкой, такой как СУБД Oracle с тысячами клиентов и важностью высокой скорости реагирования, система на базе процессоров RISC скорее всего окажется более результативной.
  2. Независимо от используемой аппаратной платформы конфигурация компьютера должна быть хорошо согласована: быстрый процессор должен работать с быстрой оперативной памятью, а дисковая подсистема (контроллеры и диски ) обязана без задержек отрабатывать команды чтения и записи. Недостаточный объем кэша любого уровня - как кэша процессора на кристалле, так и кэша дискового контроллера - может привести к значительному снижению производительности.
Таблица 17.1. Сравнение производительности разных систем
Процессор, частота CPECint2000 (base) CPECfp2000 (base) Система
Alpha21264C, 1.01 GHz 561 585 Compaq AlphaServer GS160
Alpha21264C, 1 GHz 776 621 Compaq AlphaServer ES45
Alpha21264B, 833 MHz 518 621 Compaq AlphaServer ES40
Itanium, 800 MHz 379 701 HP rx4610
Itanium, 800 MHz 358 655 HP i2000
UltraSPARC III 1.05 GHz 537 701 Sun Blade 2050
UltraSPARC III 900 MHz 470 629 Sun Blade 1000
UltraSPARC III 750 MHz 363 312 Sun Blade 1000
Power4, 1.3. GHz 790 1098 IBM eServer 690

Оценка ситуации: программы надзора за системой

Для оценки производительности системы мы можем задействовать несколько утилит, которые помогут выяснить, насколько загружены различные компоненты компьютера. Исходя из показателей загрузки и наших знаний о реальных потребностях запущенных процессов, мы сможем решить, изменить ли конфигурацию компьютера, настройки системы или же иначе распределить задачи между компьютерами в сети.

Прежде всего, следует выяснить, есть ли в системе узкие места. Например, постоянная загрузка процессора на 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