AIX + Oracle p570 производительность

Главная Форумы POWER Systems AIX/Hardware AIX + Oracle p570 производительность

Просмотр 18 веток ответов
  • Автор
    Сообщения
    • #19109
      Михаил Туев
      Участник

      Периодически (раз в сутки) предположительно когда делается сложный запрос происходит резкое падение производительности.

      при этом идет большая нагрузка на диски (локальный с установкой оракл и СХД)

      Кроме того наблюдаются “Page faults”

      После перезагрузки через HMC – всё норм. Не отвисает в течении 20-30 минут.
      При этом тормозит даже консоль ssh.

      hdisk0 – локальный
      hdisk34 – СХД

      Кроме того тормоза наблюдаются при простом копировании файлов с СХД на локальный диск и обратно либо через сеть.

    • #19110

      Ну так в swap уходит. Во-первых, выполнены ли рекомендации для оракл на аикс: sga в лок, большие страницы, filesystem_options в setall (если aix >= 6.1, а база >= 10G)? Во-вторых, какое управление памятью оракла автомат или нормальное?

    • #19111
      Михаил Туев
      Участник

      Смущают настройки maxperm%,maxclient%

      Если поможет:

      -bash-3.00# vmo -a
      cpu_scale_memp = 8
      data_stagger_interval = 161
      defps = 1
      force_relalias_lite = 0
      framesets = 2
      htabscale = n/a
      kernel_heap_psize = 4096
      kernel_psize = 4096
      large_page_heap_size = 0
      lgpg_regions = 0
      lgpg_size = 0
      low_ps_handling = 1
      lru_file_repage = 1
      lru_poll_interval = 10
      lrubucket = 131072
      maxclient% = 80
      maxfree = 1088
      maxperm = 706547
      maxperm% = 80
      maxpin = 755533
      maxpin% = 80
      mbuf_heap_psize = 65536
      memory_affinity = 1
      memory_frames = 933888
      memplace_data = 2
      memplace_mapped_file = 2
      memplace_shm_anonymous = 2
      memplace_shm_named = 2
      memplace_stack = 2
      memplace_text = 2
      memplace_unmapped_file = 2
      mempools = 2
      minfree = 960
      minperm = 176636
      minperm% = 20
      nokilluid = 0
      npskill = 16384
      npsrpgmax = 131072
      npsrpgmin = 98304
      npsscrubmax = 131072
      npsscrubmin = 98304
      npswarn = 65536
      num_spec_dataseg = 0
      numpsblks = 2097152
      page_steal_method = 0
      pagecoloring = n/a
      pinnable_frames = 771845
      psm_timeout_interval = 20000
      pta_balance_threshold = n/a
      relalias_percentage = 0
      rpgclean = 0
      rpgcontrol = 2
      scrub = 0
      scrubclean = 0
      soft_min_lgpgs_vmpool = 0
      spec_dataseg_int = 512
      strict_maxclient = 1
      strict_maxperm = 0
      v_pinshm = 0
      vm_modlist_threshold = -1
      vmm_fork_policy = 1
      vmm_mpsize_support = 1
      wlm_memlimit_nonpg = 1
      -bash-3.00#

    • #19112
      Михаил Туев
      Участник

      lock_sga выключено точно
      База в районе 10 Гб
      aix 5.3.12.5 TL12 – AIX Kernel Version

    • #19113

      Под 10G я имел ввиду версию базы.

    • #19114

      > lock_sga выключено точно

      Почему?

    • #19115
      Михаил Туев
      Участник

      Oracle 10g
      lock_sga включим.

      Пока внесли изменения:
      vmo -p -o minperm%=15
      vmo -p -o maxperm%=20
      vmo -p -o maxclient%=20

    • #19119
      uxTuaHgp
      Участник

      Объем памяти на сервере?
      Вижу 3.6ГБ

      ораклом кто занимается?
      sga_target
      sga_max_size
      pga_aggregate_target

      Каков фактический объем потребленной памяти под PGA во время торможения?

      Если виной всему дурной запрос, который “перемножает” огромные таблицы, то нужно искать автора и отрывать руки вместе с головой, потому что человеческих методов ограничения потребления PGA в Oracle нет.

      Но как мне кажется, просто администраторы просчитались с распределением памяти.

      Элементарно просто вычислить объем просчета, посмотрев насколько глубоко залезает система в своп.

      lsps -s

      Вижу, что на 1.6ГБ залезли в своп.

      И затем сократить на эту цифру (+10-20%) запросы БД Oracle на SGA.

      В общем отнять у sga_max_size и sga_target оракла 1.8ГБ
      Ну это если автоматическое управление памятью.
      Если все вручную, то считать db_cache_size и shared_pool_size

    • #19121
      Михаил Туев
      Участник

      При тормозах перые строки svmon:

      ——————————————————————————-
      Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
      847932 oracle 602514 9876 153289 636258 Y N N

      PageSize Inuse Pin Pgsp Virtual
      s 4 KB 12946 9828 13049 23618
      m 64 KB 36848 3 8765 38290

      Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
      10740 70000008 work default shmat/mmap m 4096 0 1141 4096
      b0714 70000007 work default shmat/mmap m 4096 0 516 4096
      38705 70000006 work default shmat/mmap m 4094 0 38 4096
      e873f 70000009 work default shmat/mmap m 4070 0 1146 4096
      20746 7000000c work default shmat/mmap m 4048 0 2238 4076
      28747 7000000d work default shmat/mmap m 3914 0 1964 4019
      38745 7000000b work default shmat/mmap m 3726 0 209 3748
      20706 70000005 work default shmat/mmap m 3072 0 140 3072
      50748 7000000e work default shmat/mmap m 2829 0 626 3219
      30744 7000000a work default shmat/mmap m 2274 0 598 2748
      0 0 work kernel segment s 9944 9828 4064 14228
      870b0 90000000 work shared library text m 385 0 19 651

      Когда все норм:
      ——————————————————————————-
      Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB
      303158 oracle 225799 9876 0 155521 Y N N

      PageSize Inuse Pin Pgsp Virtual
      s 4 KB 93911 9828 0 23633
      m 64 KB 8243 3 0 8243

      Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
      4076a 7000000e work default shmat/mmap m 2819 0 0 2819
      38765 70000009 work default shmat/mmap m 2700 0 0 2700
      822 – clnt s 19738 0 – –
      80752 10 clnt text data BSS heap, s 17421 0 – –
      /dev/fslv00:57793
      20826 – clnt s 16330 0 – –
      0 0 work kernel segment s 13987 9828 0 13987
      20766 7000000a work default shmat/mmap m 652 0 0 652
      870b0 90000000 work shared library text m 643 0 0 643
      58769 7000000d work default shmat/mmap m 425 0 0 425
      6072e – clnt s 6002 0 – –
      d8739 70000000 work default shmat/mmap m 367 0 0 367
      a07d6 11 work text data BSS heap s 4491 0 0 4491
      50828 – clnt s 4318 0 – –
      386c5 70000006 work default shmat/mmap m 160 0 0 160
      10760 70000008 work default shmat/mmap m 160 0 0 160
      18761 70000007 work default shmat/mmap m 160 0 0 160
      8001 9ffffffd work shared library s 2425 0 0 2425
      d0738 70000005 work default shmat/mmap m 120 0 0 120

      Отсюда следует что однозначно в своп уходит.

      Объем памяти 3,6 гб

    • #19122
      Михаил Туев
      Участник

      SQL> show parameter sga

      NAME TYPE VALUE
      ———————————— ———– ——————————
      lock_sga boolean FALSE
      pre_page_sga boolean FALSE
      sga_max_size big integer 3792M
      sga_target big integer 0
      SQL>

      SQL> show parameter pga

      NAME TYPE VALUE
      ———————————— ———– ——————————
      pga_aggregate_target big integer 0
      SQL>

    • #19123
      Михаил Туев
      Участник

      SQL> show parameter sga

      NAME TYPE VALUE
      ———————————— ———– ——————————
      lock_sga boolean FALSE
      pre_page_sga boolean FALSE
      sga_max_size big integer 3792M
      sga_target big integer 0
      SQL> show parameter pga

      NAME TYPE VALUE
      ———————————— ———– ——————————
      pga_aggregate_target big integer 0
      SQL>

    • #19124
      uxTuaHgp
      Участник

      SGA_MAX_SIZE больше чем оперативной памяти в наличии.

      Fвтотюнинг SGA выключен

      Покажите
      select name, value from v$parameter where name=’db_cache_size’;
      select name, value from v$parameter where name=’shared_pool_size’;

      Потребление PGA я сейчас не вспомню запрос, погуглите.

    • #19127
      Михаил Туев
      Участник

      Добрый вечер. Спасибо вам за ответы.

      Сегодня решили внести изменения:
      alter system set lock_sga=true scope=spfile;
      ALTER SYSTEM SET SGA_MAX_SIZE = 3500M scope=spfile;

      оракл перестал стартовать:

      SQL> startup
      ORA-00847: MEMORY_TARGET/MEMORY_MAX_TARGET and LOCK_SGA cannot be set together

      Починилось с помощью
      CREATE SPFILE FROM PFILE=’… init.ora.11620127388′;

      Вобщем подскажите похоже что MEMORY_TARGET и MEMORY_MAX_TARGET нужно убрать.
      Только потом включать LOCK_SGA.

    • #19128
      andrewk
      Участник

      Вам вроде уже Александр написал – у Вас всего 3600МБ памяти, из них Вы собираетесь отдать 3500МБ под SGA? А PGA? А операционка вообще, наверно, святым духом питаться должна?
      Под SGA максимум, что Вы можете отдать, это 3600 – 1000 (под AIX) – PGA, размер которого Вы еще не выяснили.

    • #19132
      Sever
      Участник

      Имеет смысл воткнуть в систему планки памяти бОльшего номинала.
      Объем памяти вырастет в разЫ.

    • #19133
      uxTuaHgp
      Участник

      Ну вы там экстремалы.
      Хоть заглянули в init.ora прежде чем из него лепить spfile?

      Надо было доки почитать по параметрам, раз обругался оракл.
      Можно было отключить LOCK_SGA обратно – и все бы завелось.

      Прежде чем применять рекомендации с форумов не мешает почитать официальные документы и бест практисы – там рекомендации комплексные.
      Например уже несколько версий издано Oracle Architecture and Tuning on AIX от IBM Advanced Tech Support.

      LOCK_SGA – это дело третье. Параметр не даст другим процессам системы вытеснить страницы кэша в своп.
      Но у вас то проблема другая: Оракл пытается распоряжаться всей памятью системы, хотя не мешало бы оставить зазор для ОС, для пользовательских процессов самого оракла, для PGA, то есть областей сортировки/хэширования и др и пр.
      Вот элементарно исходя из ваших параметров ОС у вас система будет пытаться использовать под кэш фацловойц системы до 20% оперативной памяти.
      В общем если посчитать примерно, то нужно ораклу отдать:
      3600 – 128 под AIX – 360 под буферы ядра – хотя-бы 64 под кэш – processes * ~2M – хотя-бы 64 под PGA
      Итого я бы ораклу не скормил больше 2600.
      И это в первом приближении, не зная конфигурации и назначения БД, не зная какие запросы там крутятся.

      В общем в вашем случае надо посмотреть какой из параметров выставлен:
      MEMORY_TARGET
      MEMORY_MAX_TARGET
      Выставляется только один из них.

      Поменяйте значение на 2000M
      Остальное должен сделать сам оракл.

    • #19153
      yota
      Участник

      Жесть какая оракл ставят на 4 гига памяти :laugh: Аффтор у тебя AMM активирован, в этом случае никакой lock_sga даже близко работать не будет. Переходи на ручное управление sga и pga. Т.е. сбрасывай к чорту MEMORY_TARGET и MEMORY_MAX_TARGET в spfile. А вообще жесть полная, там половину из 4 гиг сам AIX занимает 🙂

    • #19168
      Михаил Туев
      Участник

      Скорее всего на сервере полностью не работает второй подключенный Processing module (второй ящик). В AMM сервера ошибки блоков питания. Сервер сошел с гарантии, контракта на поддержку с IBM нет, поэтому там ничем не помогут.

      То что просили:

      SQL> select name, value from v$parameter where name=’db_cache_size’;

      NAME
      ——————————————————————————–
      VALUE
      ——————————————————————————–
      db_cache_size
      0

      SQL> select name, value from v$parameter where name=’shared_pool_size’;

      NAME
      ——————————————————————————–
      VALUE
      ——————————————————————————–
      shared_pool_size
      0

      SQL>

      SQL> show parameter memory;

      NAME TYPE VALUE
      ———————————— ———– ——————————
      hi_shared_memory_address integer 0
      memory_max_target big integer 3792M
      memory_target big integer 3792M
      shared_memory_address integer 0
      SQL>

    • #19169
      uxTuaHgp
      Участник

      Извините, протупил.
      Вам тут правильно сказали про AMM – автоматическое управление памятью Оракла.
      Или вы его выключаете и сами рулите
      lock_sga
      sga_target
      и тд и тп
      или продолжаете жить с ним, только ограничьте длинну рук Oracle AMM путем ограничения
      MEMORY_MAX_TARGET
      как я написал.

Просмотр 18 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.