Влияние на производительность, если APPLHEAPSZ установлен слишком низко
У меня есть сервер с 4 ГБ ОЗУ, установленный с DB2 10.5 и WebSphere Application Server 8.0. Недавно мы увеличили объем оперативной памяти до 12 ГБ для повышения производительности. Когда я проверяю параметры конфигурации базы данных, APPLHEAPSZ устанавливается на 4096.
С увеличением оперативной памяти до 12 ГБ, как APPLHEAPSZ будет по-прежнему иметь значение 4096 VS APPLHEAPSZ, установленное на АВТОМАТИЧЕСКОЕ, влияет на производительность?
2 ответа
Размер кучи приложения не влияет на производительность базы данных. Если приложению не хватает места в куче, оно просто откатится назад, оно не станет медленнее.
Другие потребители памяти, в первую очередь буферные пулы и куча сортировки, влияют на производительность, поэтому вы можете настроить их вместо этого.
Вы не упоминаете, является ли ваша установка DB2 32-битной или 64-битной. Имейте в виду, что 32-разрядные приложения не могут использовать память более 4 ГБ, независимо от того, сколько физической памяти у вас есть на вашем компьютере.
На производстве, как правило, сервер приложений и сервер базы данных устанавливаются на отдельных компьютерах с высокой конфигурацией.
В вашем случае они оба установлены на одной машине. APPLHEAPSZ относится к объему памяти приложения, которое может использовать каждый отдельный агент базы данных, работающий для этого приложения. Эта память может меняться в зависимости от требований / использования памяти приложения / базы данных. Для этого параметра установлено значение Автоматически из DB2 9.5 версии, чтобы избежать ошибок OOM на стороне БД. Это значение должно оставаться неизменным, только если
- Вы хорошо знаете требования к памяти агента БД
- У вас очень мало памяти, и вам нужно ограничить использование памяти фиксированным значением. (Как и в вашем случае, у вас есть сервер приложений, также установленный на том же сервере, и чтобы получить достаточно памяти для сервера приложений, вам нужно ограничить использование сервера БД и наоборот)
Если возможно, разместите приложение и сервер БД на разных компьютерах и установите параметр как автоматический (если это невозможно, сохраните фиксированное значение с правильным балансом "память приложения + память БД APPLHEAPSZ + системная память")
С точки зрения производительности, фиксированное значение должно давать хорошую производительность, если использование БД довольно низкое. Если использование БД превышает заданное значение с точки зрения памяти, вы сталкиваетесь с ухудшением производительности. Автоматическое значение будет служить лучше всего большую часть времени.