Облік оперативної пам’яті є складним з кількох причин, за які я потрапляю за хвилину. Для простого моніторингу, ймовірно, достатньо скриптів gkrellmd або nagios. Якщо ви хочете більшої точності, вам потрібно буде виглядати важче.
smem вводить концепцію пропорційного розміру набору :
Оскільки великі частини фізичної пам'яті зазвичай діляться між декількома програмами, стандартний показник використання пам'яті, відомий як розмір набору резидентів (RSS), значно завищить використання пам'яті. Натомість PSS вимірює "справедливу частку" кожної програми в кожному додатку, щоб дати реалістичну міру.
Приклад: Ви запускаєте GNOME, викликаючи запуск декількох процесів, по одному для кожного аплету та програми. Всі вони посилаються на лібгліб. Linux завантажує libglib в один блок пам'яті і відображає його у кожен процес, який хоче libglib. Наївний облік пам’яті підраховує повний розмір лібгліб проти кожного процесу, що пов’язаний з ним.
smem розподіляє вартість лібглібу серед процесів його використання, щоб дати більш детальну картину реальності. Він також має ряд варіантів відображення використання пам'яті (з веб-сайту):
- Показати основну інформацію про процес
- Показати smem системи перегляду -R 4G -K / шлях / до / vmlinux -w
- Показати підсумки та відсотки smem -t -p
- Показати різні стовпці smem -c "ім'я користувача pss"
- Показати процеси, відфільтровані шляхом відображення smem -M libxml
- Показати відображення, відфільтровані за технологією volum smem -m -P [e]
- Прочитайте дані із захоплення тарболом smem --source capture.tar.gz
- Показати діаграму з позначкою pid smem --bar pid -c "pss uss"
- Показати кругову діаграму RSS, позначену ім'ям smem --pie name -s rss
Однак вам знадобиться зовсім недавнє ядро (> 2.6.27).