Van egy masina, ami időnként veszettül elkezdi tölteni a swap-ot, és persze olyankor eléggé megcsigul. Fut rajta egy mysq szerver, amit elvileg már bekalapáltam úgy a memóriába, hogy azt nem lehet swap-ba lökni, és elvileg még bőven van helye a hugepages-ben memóriát foglalni:
# grep -i Hugepa /proc/meminfo
HugePages_Total: 2058
HugePages_Free: 695
HugePages_Rsvd: 395
HugePages_Surp: 0
Hugepagesize: 2048 kB
# cat /proc/$(cat /var/run/mysqld/mysqld.pid)/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes unlimited unlimited processes
Max open files 1024 1024 files
Max locked memory unlimited unlimited bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 16382 16382 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Elég sok találatot kaptam a google-ben arra nézve, hogy a linux kernel (vmm) szereti kidobálni a memóriából a mysql-t. Viszont úgy néz ki, hogy annak ellenére, hogy elvileg a mysql-t már nem tudja kilökdösni, valamit mégis akar. 13:30 után bololndult meg, kikapcsoltam a swap-ot, azért esett le 0-ra. A szabad memória 3G körül volt, és mégis tolta a swap-ot mint az őrült:
# atsar -rs 12:00
Linux dantooine 2.6.32-bpo.5-openvz-amd64 #1 SMP Mon Jan 17 19:39:07 UTC 2011 x86_64 08/12/2011
12:00:01 memtot memfree buffers cached slabmem swptot swpfree _mem_
12:10:01 7991M 1443M 192M 1158M 130M 1903M 1491M
12:20:01 7991M 1425M 194M 1171M 130M 1903M 1491M
12:30:01 7991M 1422M 194M 1174M 131M 1903M 1492M
12:40:01 7991M 1415M 195M 1176M 131M 1903M 1492M
12:50:01 7991M 1401M 196M 1178M 131M 1903M 1492M
13:00:01 7991M 1386M 196M 1181M 131M 1903M 1492M
13:10:01 7991M 1372M 196M 1184M 131M 1903M 1492M
13:20:01 7991M 1364M 197M 1198M 131M 1903M 1493M
13:30:01 7991M 1361M 197M 1200M 131M 1903M 1493M
13:40:14 7991M 3309M 14M 38M 117M 1903M 788M
13:50:01 7991M 2887M 18M 85M 72M 410M 0M
14:00:01 7991M 2350M 41M 230M 79M 0M 0M
14:10:01 7991M 2160M 60M 373M 79M 0M 0M
Az első gondom az az, hogy nem tudom, hogy miért teszi ezt. Látszik, hogy mielőtt megvadult volna, bő 1G memória szabadon volt (+az fs cache és buffers, slab), és elvileg semmi olyan alkalmazás nem fut a gépen, ami ennyit akarhatott volna allokálni.
A második gondom az, hogy oké, valamiért csinálja, de mit dobál ki? A top nem sokat segít, a SWAP oszlopban még most is a mysql vezet 3.9G-val, pedig ki van kapcsolva a swap terület, ezért vannak fenntartásaim ezzel kapcsolatban.
/proc/sys/vm/block_dump: 0
/proc/sys/vm/dirty_background_bytes: 0
/proc/sys/vm/dirty_background_ratio: 10
/proc/sys/vm/dirty_bytes: 0
/proc/sys/vm/dirty_expire_centisecs: 3000
/proc/sys/vm/dirty_ratio: 20
/proc/sys/vm/dirty_writeback_centisecs: 500
/proc/sys/vm/drop_caches: 0
/proc/sys/vm/hugepages_treat_as_movable: 0
/proc/sys/vm/hugetlb_shm_group: 107
/proc/sys/vm/laptop_mode: 0
/proc/sys/vm/legacy_va_layout: 0
/proc/sys/vm/lowmem_reserve_ratio: 256 256 32
/proc/sys/vm/max_map_count: 65530
/proc/sys/vm/memory_failure_early_kill: 0
/proc/sys/vm/memory_failure_recovery: 1
/proc/sys/vm/min_free_kbytes: 11487
/proc/sys/vm/min_slab_ratio: 5
/proc/sys/vm/min_unmapped_ratio: 1
/proc/sys/vm/mmap_min_addr: 65536
/proc/sys/vm/nr_hugepages: 2058
/proc/sys/vm/nr_overcommit_hugepages: 0
/proc/sys/vm/nr_pdflush_threads: 0
/proc/sys/vm/numa_zonelist_order: default
/proc/sys/vm/odirect_enable: 0
/proc/sys/vm/oom_dump_tasks: 0
/proc/sys/vm/oom_kill_allocating_task: 0
/proc/sys/vm/overcommit_memory: 0
/proc/sys/vm/overcommit_ratio: 50
/proc/sys/vm/page-cluster: 3
/proc/sys/vm/panic_on_oom: 0
/proc/sys/vm/percpu_pagelist_fraction: 0
/proc/sys/vm/scan_unevictable_pages: 0
/proc/sys/vm/stat_interval: 1
/proc/sys/vm/swappiness: 0
/proc/sys/vm/vfs_cache_pressure: 100
/proc/sys/vm/vsyscall: 0
/proc/sys/vm/zone_reclaim_mode: 0
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x6c00ed3d 0 zabbix 666 877448 8
0x00000000 655361 mysql 600 14680064 1 dest
0x00000000 688130 mysql 600 3672113152 1 dest
0x6800eed9 720899 zabbix 666 8421519 25
0x7800eed9 753668 zabbix 666 16777627 25
0x7400eed9 786437 zabbix 666 4194702 25
0x6700eed9 819206 zabbix 666 7130317 25
0x7300eed9 851975 zabbix 666 1258291 25
------ Semaphore Arrays --------
key semid owner perms nsems
0x7a00ed3d 131072 zabbix 666 7
0x002fa327 163841 root 666 2
0x00000000 196610 www-data 600 1
0x7a00eed9 327683 zabbix 666 7
------ Message Queues --------
key msqid owner perms used-bytes messages
/proc/sys/kernel/shmall: 1310720
/proc/sys/kernel/shmmax: 4315938816
/proc/sys/kernel/shmmni: 4096
NUMA - ha jól értem - nem játszik, egy CPU van a gépben.
A gépen fut pár konténer, amik max memóriafoglalása se lenne elég ahhoz, hogy így elbánjon géppel.
Kifogytam az ötletekből, valaki?