В продолжение темы об ожиданиях log file sync - сегодня опять с ними столкнулась во время нагрузочного тестирования. Знаю, что причиной ожиданий log file sync могут быть:
1) частые коммиты
2) слишком большой log_buffer
3) медленные диски, на которых находятся лог файлы.
Первую и третью причину отбросила, с ними я и так ничего не могу поделать.
Взялась за вторую причину: размер лог буфера оказался равен 45MB. У Бурлесона прочитала советы об оптимальном размере лог буфера:
MetaLink note 216205.1 Database Initialization Parameters for Oracle Applications 11i, recommends a log_buffer size of 10 megabytes for Oracle Applications, a typical online database:
A value of 10MB for the log buffer is a reasonable value for Oracle Applications and it represents a balance between concurrent programs and online users.
The value of log_buffer must be a multiple of redo block size, normally 512 bytes.
10MB? Не много ли? Слышала очень много советов о том, что нет смысла устанавливать его больше 1МБ. Правда ли это?
Бурлесон пишет, что есть увеличение размера лог буфера больше 1МБ реально улучшала прозводительность:
Even though Oracle has traditionally suggested a log_buffer no greater than one meg, I have seen numerous shops where increasing log_buffer beyond one meg greatly improved throughput and relieved undo contention.
На металинке пишут, что нет смысла устанавливать его больше 5МБ:
It has been noted previously that values larger than 5M may not make a difference.
Решила пока уменьшить лог буфер с 45МБ до 10МБ, посмотрю. Если не поможет, попробую уменьшить до 5МБ.