Task #2809
closed
Mongo a příkaz/operátor pro vylití keší
Added by Radomír Orkáč almost 9 years ago.
Updated over 7 years ago.
Description
Pharook:
Nemá Mongo nějaký příkaz/operátor pro vylití keší? Když už testujeme, bylo by možná dobré umět pro každý dotaz udělat cold/hot test, tj. "pro všechno teď musím na disk" a "ok, podruhé už ne, mám nakešováno". Přijde mi, že v tom testu je to jasně vidět.
Muj zaver k nize uvedenym poznamkam… - jedine echo X > /proc/ respektive pres sysctl je reseni, cili provede skutecne vyprazdneni cache.
https://www.youtube.com/watch?v=ivBcMSYA3zs
This command will clear pagecache:
/sbin/sysctl vm.drop_caches=1
To clear dentries and inodes you can use:
/sbin/sysctl vm.drop_caches=2
To free memory of the all above use a following command:
/sbin/sysctl vm.drop_caches=3
What the above commands will do is that they will sync your memory and edit a following file with appropriate number entry.:
/proc/sys/vm/drop_caches
Do not edit this file directly !
# sysctl vm.drop_caches=1
# echo 1 > /proc/sys/vm/drop_caches
# ./mongotest -f -c cache.cfg
Total elapsed time of script: 0:04:32.054979
Spousteno opakovane za sebou:
Total elapsed time of script: 0:00:49.331240
Total elapsed time of script: 0:00:51.899281
Total elapsed time of script: 0:00:51.121576
Spusteno po 10 hodinach:
Total elapsed time of script: 0:00:49.061840
# /etc/init.d/mongod restart
Total elapsed time of script: 0:00:49.754842
# top -p $(pidof mongod)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6777 mongodb 20 0 1.433t 0.059t 0.059t S 0.7 31.7 6:17.93 mongod
# sysctl vm.drop_caches=3
# echo 1 > /proc/sys/vm/drop_caches
6777 mongodb 20 0 1.433t 0.059t 0.059t S 0.3 31.7 6:18.28 mongod
# ./mongotest -f -c cache.cfg
Total elapsed time of script: 0:04:42.690875
- Status changed from In Progress to Feedback
Lepší, než drátem do oka, pokud to alespoň trochu umíme. Testy, které jsi teď dělal (#2807) jsou cold (s vylitou keší) nebo hot?
Bez vylite kese, takze jsou teple;-) Hot
Nemělo by smysl vylití keší vynutit u každého dotazu? Takhle ti předchozí dotazy můžou ovlivňovat výkon následujících (protože už něco načtou do paměti).
Pavel Kácha wrote:
Nemělo by smysl vylití keší vynutit u každého dotazu? Takhle ti předchozí dotazy můžou ovlivňovat výkon následujících (protože už něco načtou do paměti).
Smysl to sice rozhodne ma, ale pozor, nedoporucoval bych to na produkcni mongodb.
Orientacne to podle me bohate staci pro nalezeni leak dotazu.
Na produkcni databazi bych si to troufnul otestovat se smazanim kese, kdyby mi dal Mek nejaka okna, kdy vi, ze se s databazi nepracuje... (nejaka zpracovani), at mu to prilis neovlivnim.
Určitě, máš pravdu. Pokud tyhle dotazy testuješ na produkci, tak invalidovat našich pěkných 8G paměti by nebylo rozumné.
- Priority changed from Normal to Low
Snižuju prioritu, pokud se ukáže užitečné, možná by mělo smysl zakomponovat do skriptu třeba na přepínač.
- Status changed from Feedback to Closed
Do skriptu by se z pohledu konzistence možná hodilo, ale po zkušenostech už víme, že problém není přístup na disk. Naše úvahy hot/cold měly pravděpodobně jen malý vliv (a v izolovaných případech, tj. po restartu, první přístupy apod.)
Also available in: Atom
PDF