Většina vaší paměti RAM je volná pro aplikace, protože se používá pro vyrovnávací paměti a mezipaměť. Podívejte se na řádek "-/+ buffers/cache:" a uvidíte velikost paměti RAM, která je skutečně použité/zdarma. Vysvětlení naleznete zde.
Chcete-li ověřit, zda Python uniká paměť, sledujte v průběhu času velikost RSS tohoto pythonu (nebo % mem). Např. napište shell-script, který je volán z úlohy cron každých pár hodin, aby se připojil výstup vašeho ps
příkazový řetězec a výstup free
příkaz do souboru.
Pokud zjistíte, že procesy Pythonu jsou únik paměti existuje několik věcí, které můžete udělat;
- Upravte svůj skript tak, aby existoval po 24 hodinách a použijte např. úloha cron pro jeho restartování (snadná cesta ven.)
- Podívejte se do hloubky na samotný Python a zejména na rozšiřující moduly, které používáte. Použijte
gc
modul pro sledování a ovlivňování využití paměti. Můžete např. zavolejtegc.count()
pravidelně sledovat množství předmětů označených ke sběru. Můžete zavolat na číslogc.collect()
explicitně a zjistěte, zda to snižuje využití paměti. Můžete také upravit práh kolekce.
Pokud se využití paměti RAM Pythonu v průběhu času nezvýší, může to být další program démona. Skript pro záznam paměti, který jsem zmínil výše, by vám měl říct, který to je.
Může existovat také jiný důvod, proč váš počítač zamrzne. Podívejte se na linuxové logfile pro vodítka.
Upravit: Protože máte wpa_supplicant
po vyplnění souboru protokolu byste měli zkontrolovat stav souborového systému (systémů). Plný souborový systém může způsobit zablokování systému. Pokud bezdrátové rozhraní nepoužíváte, vypněte jej.