Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
řešení_problémů:paměť [2012/07/28 07:44] – vytvořeno ubuntu | řešení_problémů:paměť [2019/02/25 17:21] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ====== Řešení problémů/ | ||
+ | {{: | ||
+ | Zde najdete **obecné** rady pro případ, že řešíte problémy s pamětí. | ||
+ | |||
+ | ====== Diagnostika ====== | ||
+ | |||
+ | ===== Kolik mám volné paměti? ===== | ||
+ | |||
+ | Spusťte [[: | ||
+ | |||
+ | {{ .: | ||
+ | |||
+ | |||
+ | Nebo použijte v [[: | ||
+ | < | ||
+ | ~ $ free -m | ||
+ | | ||
+ | Mem: 2509 | ||
+ | -/+ buffers/ | ||
+ | Swap: | ||
+ | </ | ||
+ | | | ||
+ | |Celkem|2509 MB|1051 MB| | ||
+ | |Obsazeno|247 MB|0 MB| | ||
+ | |Volno|2262 MB|1051 MB| | ||
+ | |||
+ | Systém vykazuje pouze 9,9% využití RAM, 1150 MB je využito pro vyrovnávací paměť (// | ||
+ | Swap není využit, což ukazuje na dostatečnou kapacitu RAM. | ||
+ | |||
+ | ===== Který proces mi zabírá nejvíc paměti? ===== | ||
+ | |||
+ | Spusťte [[: | ||
+ | |||
+ | {{ .: | ||
+ | |||
+ | |||
+ | Nebo použijte v [[Terminál]]u příkaz **top**; pak zmáčkněte < | ||
+ | |||
+ | {{ .:top.png }} | ||
+ | |||
+ | Nebo pro jednoduchý výpis bez aktualizace **ps -eo rss,args | sort -rn | head** (výpis "RAM top ten") | ||
+ | < | ||
+ | ~ $ ps -eo rss,args | sort -rn | head | ||
+ | 168744 / | ||
+ | 30208 / | ||
+ | 26172 compiz | ||
+ | 24340 nautilus | ||
+ | 20896 / | ||
+ | 18936 python / | ||
+ | 18128 /usr/bin/X :0 -nr -verbose -auth / | ||
+ | 16696 gnome-panel | ||
+ | 15508 / | ||
+ | 13796 / | ||
+ | </ | ||
+ | ====== Řešení ====== | ||
+ | |||
+ | ===== Linux mi žere strašně moc RAM! ===== | ||
+ | |||
+ | * Zkontrolujte výstup z '' | ||
+ | * Pokud ve výpise procesů vidíte, že některý neúměrně zabírá RAM (řádově stovky MB), může se jednat o chybu v programu (//memory leak//). Zkuste jinou verzi programu nebo jiný podobný, případně chybu nahlašte. | ||
+ | |||
+ | ===== Zeptejte se na fóru Ubuntu ===== | ||
+ | {{: | ||
+ | Snažte se uvést co nejvíce informací, hlavně | ||
+ | * podrobný popis problému a přesný přepis chybového hlášení (případně snímek obrazovky, třeba i z foťáku) | ||
+ | * co jste všechno už zkoušeli při řešení problému | ||
+ | * informace k systému (hardware, distribuce, vydání) | ||
+ | * přidejte výstupy z příkazů '' | ||
+ | * případně připojte další relevantní logy (pokud jsou dlouhé, tak radši jako přílohu, nebo je nahrajte na [[http:// | ||
+ | |||
+ | * ... a pokud se vám podaří problém nakonec vyřešit, nezapomeňte se pak na fóru pochlubit jak... | ||
+ | |||
+ | ====== Technické detaily ====== | ||
+ | |||
+ | ===== Kolik RAM mám skutečně k dispozici? ===== | ||
+ | Kapacita RAM modulů nemusí odpovídat údaji o volné paměti ve výstupu '' | ||
+ | < | ||
+ | dmesg | grep -iw memory | ||
+ | </ | ||
+ | < | ||
+ | ... | ||
+ | [ 0.000000] Memory: 2554056k/ | ||
+ | ... | ||
+ | [ 0.746013] Freeing initrd memory: 14896k freed | ||
+ | [ 1.316731] Freeing unused kernel memory: 688k freed | ||
+ | </ | ||
+ | |||
+ | 57908k je rezervováno pro kernel a obsluhu paměti, z toho 4940k pro kód, 2333K pro různá data, 14896k bylo po zavedení systému uvolněno. Zbývá tedy 2554056k RAM. | ||
+ | |||
+ | Výpočet může vycházet pro různé systémy různě, ale vždy je třeba počítat se zabranou pamětí pro kernel a režii. Také pokud se velikost modulů RAM blíží 4GB na 32 bitovém systému, je potřeba počítat s ukrojením větší části paměti na mapování grafické paměti, I/O apod. | ||
+ | |||
+ | ===== Co znamená VIRT, RSS/RES, SHR? ===== | ||
+ | |||
+ | **VIRT** (//virtual size//) - celková velikost namapované paměti - kód, data, sdílené knihovny, paměť vyžádaná programem k použití. Maximální velikost paměti, kterou může momentálně proces použít. | ||
+ | |||
+ | **RES** (//resident size//) - paměť skutečně využitá procesem. Pokud si proces vyžádá 100M paměti, ale skutečně použije jen 1M, stoupne RES o 1M. Nezahrnuje ale část paměti ve //swap//u, a může obsahovat sdílenou paměť. | ||
+ | |||
+ | **SHR** (// | ||
+ | |||
+ | Nejvíce vypovídající hodnotou je asi RSS/RES, ale i ta je těžko izolovatelná pro konkrétní proces. | ||
+ | |||
+ | ===== Jak zjistím údaje k RAM? ===== | ||
+ | |||
+ | Použijte údaje z DMI ('' | ||
+ | < | ||
+ | sudo dmidecode -t memory | ||
+ | </ | ||
+ | sudo lshw -c memory | ||
+ | </ | ||
+ | sudo -s | ||
+ | apt-get install i2c-tools | ||
+ | modprobe eeprom | ||
+ | decode-dimms | ||
+ | </ |