[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по настройке производительности


Требования рабочей схемы к ресурсам системы

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

При оценке параметров производительности программы постарайтесь быть как можно ближе к реальным условиям, руководствуясь следующими рекомендациями:

Обратите внимание, что независимые разработчики программного обеспечения (ISV) часто приводят рекомендации по определению объема ресурсов, необходимых для работы их приложений.

При оценке необходимого объема ресурсов вам должны интересовать четыре параметра:

Процессорное время
Показатель использования процессора рабочей схемой

Доступ к диску
Частота, с которой рабочая схема генерирует запросы на чтение с диска или запись на диск

Нагрузка LAN
Число пакетов, генерируемых рабочей схемой, и число байтов, передаваемых при обмене данными

Физическая память
Объем оперативной памяти, необходимой для рабочей схемы

В следующих разделах описано, каким образом можно определить значения этих параметров в различных ситуациях.

Оценка ресурсов, необходимых для выполнения рабочей схемы

Если для оценки будет применяться исходная программа, ее аналог или прототип, то выбор способа оценки определяется следующими условиями:

Оценка ресурсов, необходимых для выполнения всей рабочей схемы, в выделенной системе

Использование тестовой (специально выделенной) системы - это идеальный случай, так как в ней можно создать ситуацию искусственной перегрузки, а также оценить объем ресурсов, используемых отдельными процессами.

Для большинства операций производительность системы можно оценить с помощью команды vmstat:

# vmstat 5 >vmstat.output

Эта команда выдает информацию о состоянии системы каждые 5 секунд, пока выполняется измерение. Первый отчет команды vmstat содержит информацию, накопленную с момента загрузки системы до вызова команды vmstat. В каждом следующем наборе выдается информация, собранная за предшествующий интервал времени (в данном случае - за 5 секунд). Ниже приведен типичный пример вывода команды vmstat:

нити     память             страница          ошибки   cpu
----- ----------- ------------------------ ------------ -----------
 r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
 0  1 75186   192   0   0   0   0    1   0 344 1998 403  6  2 92  0

Для оценки нагрузки на CPU и дисковую память вызовите команду iostat:

# iostat 5 >iostat.output

Эта команда выдает информацию о состоянии системы каждые 5 секунд, пока выполняется измерение. Первый отчет команды iostat содержит информацию, накопленную с момента загрузки системы до вызова команды iostat. В каждом следующем наборе выдается информация, собранная за предшествующий интервал времени (в данном случае - за 5 секунд). Ниже приведен пример вывода команды iostat:

tty:      tin         tout   avg-cpu:  % user    % sys     % idle    % iowait
          0.0          0.0              19.4      5.7       70.8       4.1
 
Диски :       % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk0           8.0      34.5       8.2         12       164
hdisk1           0.0       0.0       0.0          0         0
cd0              0.0       0.0       0.0          0         0

Для того чтобы получить информацию об использовании оперативной памяти, вызовите команду svmon. Команда svmon -G выдает информацию об использовании всей оперативной памяти. Все значения в выводе этой команды измеряются в страницах по 4 Кб (ниже приведен пример вывода команды в AIX версии 4.3.3):

# svmon -G
 
               size      inuse       free        pin    virtual
memory        65527      65406        121       5963      74711
pg space     131072      37218
 
               work       pers       clnt
pin            5972          0          0
in use        54177       9023       2206

В этом примере занята вся оперативная память системы объемом 256 Мб. Около 83 процентов памяти занято рабочими сегментами - память, выделенная для ввода-вывода активным программам (все остальное занято файлами кэша). Если в системе запущен какой-либо продолжительный процесс, то можно получить информацию об объеме памяти, который используется этим процессом. Ниже приведен пример вывода команды, содержащий информацию об использовании памяти процессом пользователя hoetzel.

# ps -fu hoetzel
     UID   PID  PPID   C    STIME    TTY  TIME CMD
 hoetzel 24896 33604   0 09:27:35  pts/3  0:00 /usr/bin/ksh
 hoetzel 32496 25350   6 15:16:34  pts/5  0:00 ps -fu hoetzel
 
# svmon -P 24896
 
------------------------------------------------------------------------------
     Pid Command        Inuse      Pin     Pgsp  Virtual   64-bit    Mthrd
   24896 ksh             4592     1456     2711     5615        N        N
 
  Vsid     Esid Type Description           Inuse   Pin Pgsp Virtual Addr Range
  4411        d work shared library text    2619     0 1187  1315   0..65535
     0        0 work kernel seg             1908  1455 1399  4171   0..32767 :
                                                                    65475..65535
 
  703c        1 pers code,/dev/hd2:4188       58     0    -     -   0..58
  5176        2 work process private           4     1  104   108   0..129 :
                                                                    65309..65535
 
  1465        - pers /dev/hd2:16866            2     0    -     -   0..1
  4858        - pers /dev/hd2:8254             1     0    -     -   0..0
  18c5        - pers /dev/andy:207             0     0    -     -   0..0
  783d        f work shared library data       0     0   21    21   0..3492

Экземпляр программы ksh занимает 4 страницы в рабочем сегменте (5176). 2619 страниц памяти, отведенных общей библиотеке, и 58 страниц, отведенных программе ksh, используются всеми работающими программами и всеми экземплярами ksh, соответственно.

Если оперативная память размером 256 Мб слишком велика, то с помощью команды rmss можно уменьшить объем оперативной памяти и заново измерить параметры рабочей схемы. Если при этом сильно увеличивается интенсивность подкачки или ухудшается время ответа, то размер уменьшен слишком сильно. Эта процедура может применяться до тех пор, пока не будет найден точный размер, при котором не ухудшаются характеристики рабочей схемы. Более подробная информация приведена в разделе Определение необходимого объема памяти с помощью команды rmss.

Для измерения нагрузки на сеть в первую очередь применяется команда netstat. Ниже приведен пример вывода команда с информацией о работе интерфейса Token-Ring:

# netstat -I tr0 5
   input    (tr0)     output            input   (Total)    output
 packets  errs  packets  errs colls   packets  errs  packets  errs colls
35552822 213488 30283693     0     0  35608011 213488 30338882     0     0
     300     0      426     0     0       300     0      426     0     0
     272     2      190     0     0       272     2      190     0     0
     231     0      192     0     0       231     0      192     0     0
     143     0      113     0     0       143     0      113     0     0
     408     1      176     0     0       408     1      176     0     0

Первая строка отчета отражает совокупную нагрузку в сети с момента последней перезагрузки. Остальные строки содержат информацию, получаемую с интервалом в 5 секунд.

Оценка ресурсов, необходимых для выполнения всей рабочей схемы, в рабочей системе

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

Наиболее эффективным средством для оценки необходимого объема ресурсов является команда vmstat, которая позволяет получить данные об использовании оперативной памяти, устройств ввода-вывода и CPU. Если вы укажете в команде vmstat довольно большой период сбора информации, например, 10 секунд, то выполнение этой команды не потребует много процессорного времени. Информация о работе с командой vmstat приведена в разделе Определение ресурса, ограничивающего производительность.

Оценка ресурсов, необходимых для выполнения неполной рабочей схемы, в рабочей системе

Под неполной рабочей схемой подразумевается измерение части параметров рабочей схемы реальной системы для будущего переноса этой рабочей схемы в другую систему. Поскольку система находится в рабочем состоянии, необходимо свести к минимуму возможное влияние измерений на ее производительность. В то же время мы должны проанализировать рабочую схему достаточно подробно, чтобы можно было установить четкое различие между компонентами рабочей схемы, которые нас интересуют, и остальными ее частями. Для того чтобы выполнить частичные измерения, необходимо выяснить, что общего у интересующих нас элементов рабочей схемы. Это может быть:

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

# ps -ef | grep pgmname
# ps -fuusername, . . .
# ps -ftttyname, . . .

для поиска интересующих нас процессов и создания отчета об использовании CPU этими процессами. После этого с помощью команды svmon можно узнать объем памяти, занятой этими процессами.

Оценка ресурсов, необходимых для выполнения программы

Существует много способов оценки ресурсов, используемых отдельными программами. Некоторые из них позволяют выполнять комплексные измерения рабочей схемы, но они слишком сильно влияют на производительность систем в рабочем состоянии. Большинство таких процедур обсуждается в главах, посвященных оптимизации потребления конкретных ресурсов. Вот некоторые из них:

svmon
Позволяет узнать объем оперативной памяти, занимаемый процессом. Эта команда описана в разделе Определение объема используемой памяти.

time
Измеряет время выполнения отдельной программы и затраченное на ее выполнение время CPU. Эта команда описана в разделе Измерение нагрузки на процессор с помощью команды time.

tprof
Измеряет относительную загрузку процессора программами, библиотеками подпрограмм и ядром операционной системы. Эта команда описана в разделе Анализ использования CPU программами с помощью команды tprof.

vmstat -s
Измеряет нагрузку на подсистему ввода-вывода, создаваемую программой. Эта команда описана в разделе Измерение параметров дискового ввода-вывода с помощью команды vmstat.

Оценка ресурсов, необходимых для выполнения новой программы

Если программа еще не написана, то невозможно точно оценить объем ресурсов, требующихся для ее выполнения. На стадии разработки программы и создания кода трудно делать какие-либо предсказания, однако оценить ресурсы, необходимые программе, можно с помощью следующих приблизительных расчетов. В качестве отправной точки можно считать, что для программы необходимо как минимум следующее:

К перечисленному выше необходимо добавить ресурсы, объем которых напрямую зависит от особенностей программы (приведенные ниже значения даны только в качестве примера):

Преобразование оценок для отдельных программ в оценки для рабочей схемы

Лучший способ оценить ресурсы, необходимые при работе в режиме обычной и пиковой нагрузки, - это использование специальных средств моделирования, например, BEST/1. Можно применять и статические модели, но при этом вы рискуете переоценить или недооценить ресурсы при работе в режиме пиковой нагрузки. В любом случае, вам необходимо понимать, каким образом взаимодействие программ рабочей схемы влияет на объем необходимых ресурсов.

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

Ниже приведены некоторые рекомендации:

Примечание: Эти рекомендации рассчитаны только на тот случай, когда невозможно выполнить более точные измерения параметров. Если существуют результаты измерений для конкретного приложения, то используйте их вместо соответствующих теоретических расчетов, поскольку они дают намного более точную оценку.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]