Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Oracle

Настройка Linux для Oracle под сервера с большим количеством памяти : Oracle

20.04.2024 13:01


12.06.2021 19:13
OlegON
 
Столкнулся с проблемной работой базы Oracle на виртуалке с большим количеством памяти. Ожидания latch cache buffer chains, хотя и оправданы были в свете кучи говнакривых запросов, но, в целом, достаточно тормозно работал сам кеш. Скажем, при назначении его ближе к 512Гб, все начинало адски тормозить.

Разобрался, проблема была в transparent_hugepage. Ниже, как его отключить
На ходу
Код:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
после этого хорошо бы сделать
SQL код:
alter system flush shared_pool;
alter system flush buffer_cache
напостоянку (рекомендую) прописываеся в параметры ядра, например, так
Код:
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off transparent_hugepage=never"
в /etc/default/grub и выполняется
Код:
grub2-mkconfig -o /boot/grub2/grub.cfg
05.07.2021 09:50
OlegON
 
Пример sysctl.conf для сервера БД с 400Гб памяти. В зависимости от свежести дистрибутива можно использовать htcp вместо bbr. После настройки памяти и кешей лучше сделать
Код:
echo 3 > /proc/sys/vm/drop_caches
и очистку буферов, как выше писал.

Код:
kernel.shmmni = 4096
kernel.shmall = 91750400
kernel.shmmax = 375809638400
vm.nr_hugepages = 131072

fs.file-max = 6815744
fs.aio-max-nr = 3145728

kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.sem = 250 32000 100 128

kernel.panic = 3

net.ipv4.ip_local_port_range = 1024 65500
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_fastopen = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_slow_start_after_idle=0
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 16384 16777216
net.ipv4.tcp_congestion_control = bbr
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.optmem_max = 25165824
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_mtu_probing = 1

vm.swappiness = 1

vm.overcommit_memory = 2
vm.overcommit_ratio = 100
vm.oom_dump_tasks = 0
vm.max_map_count = 200000
vm.min_free_kbytes = 6339782

kernel.sched_autogroup_enabled = 0
kernel.sched_migration_cost_ns = 5000000

vm.vfs_cache_pressure = 15
vm.dirty_background_ratio = 0
vm.dirty_background_bytes = 6815744
vm.dirty_ratio = 0
vm.dirty_bytes = 6815744000
17.08.2021 15:36
OlegON
 
Видимо, еще будет полезным периодический запуск команды
Код:
echo 1 > /proc/sys/vm/compact_memory
от root, что предотвратит катастрофическую фрагментацию памяти
Посмотреть ее можно
Код:
cat /proc/buddyinfo
Часовой пояс GMT +3, время: 13:01.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.