Открийте хардуера с помощта на dmidecode
Автоматичното откриване на хардуер винаги е било малко като лотария, но се подобрява през последните години, тъй като много производители документират своите продукти по-подробно и разполагат със специфична информация и онлайн. За да научите за хардуерната информация относно RAM, инсталирана на вашето устройство, използвайте dmidecode
команда (пакет за Debian GNU / Linux, Ubuntu и Linux Mint: dmidecode).
Наред с друга информация, този инструмент съобщава подробни данни за инсталираните системни компоненти като процесора, основната платка и RAM. Информацията се основава на интерфейса за управление на работния плот (DMI) [1], който представлява рамка, която класифицира отделните компоненти на настолен компютър, преносим компютър или сървър, като абстрахира тези компоненти от софтуера, който ги управлява [2]. Опцията --тип памет
се отнася до устройствата с памет. За други DMI класове погледнете ръководството на dmidecode.
# dmidecode 2.12
SMBIOS 2.7 присъства.
Дръжка 0x0007, DMI тип 16, 23 байта
Физическа памет
Местоположение: системна платка или дънна платка
Използване: Системна памет
Тип корекция на грешки: Няма
Максимален капацитет: 16 GB
Манипулатор за информация за грешки: Не е предоставен
Брой устройства: 1
Манипулатор 0x0008, тип DMI 17, 34 байта
Устройство с памет
Дръжка на масива: 0x0007
Манипулатор за информация за грешки: Не е предоставен
Обща ширина: 64 бита
Ширина на данните: 64 бита
Размер: 8192 MB
Форм фактор: SODIMM
Комплект: Няма
Локатор: ChannelA-DIMM0
Локатор на банка: БАНКА 0
Тип: DDR3
Подробности за типа: Синхронно
Скорост: 1600 MHz
Производител: Samsung
Сериен номер: 25252105
Етикет на актива: Няма
Номер на част: M471B1G73DB0-YK0
Ранг: Неизвестен
Конфигурирана тактова честота: 1600 MHz
Понастоящем тази машина е оборудвана с 8G DDR3 RAM с конфигурирана тактова честота 1600 MHz. Както можете да видите, максималният наличен капацитет на бордовата RAM е 16G, което означава, че може да бъде разширен с втори 8G модул.
Графична информация за паметта
В случай, че предпочитате графичен интерфейс за извличане на тази информация, инструментите Hardinfo [3] и Hardware Lister (версия GTK +) [4] могат да представляват интерес за вас. На Debian GNU / Linux, Ubuntu и Linux Mint тези програми са достъпни чрез пакетите hardinfo и lshw-gtk. Фигура 2 показва потребителския интерфейс на Hardinfo, показващ информацията за паметта при инсталация на Xubuntu.
Колко памет е налична в момента
Понякога по-малкото е повече. В командния ред информацията относно паметта е достъпна чрез Безплатно
команда. На Debian GNU / Linux, Ubuntu и Linux Mint тази програма е част от пакета procps [5]. Фигура 2 показва изхода в терминален прозорец.
Като избор на допълнителни опции, Безплатно
приема различни параметри като:
-b (- байта):
покажете изхода като байтове-k (--kilo):
покажете изхода като килобайта-m (--mega):
покажете изхода като мегабайта-g (--giga):
покажете изхода като гигабайта--тера:
покажете изхода като терабайта-h (--човешко):
покажете изхода в разбираем за човека формат
На фигура 3 изходът е показан в мегабайта с помощта на опцията -m. Системата разполага с 4G RAM, докато в момента се използват 725M.
Информация за паметта от гледна точка на ядрото на Linux
Инструментите, споменати по-горе, разчитат на сурова информация, която се съхранява във файловата система proc на ядрото на Linux. За да покажете тези подробности, изведете съдържанието на файла / proc / meminfo
използвайки котка
полезност в терминал:
MemTotal: 7888704 kB
MemFree: 302852 kB
Mem Наличен: 448824 kB
Буфери: 17828 kB
Кеширано: 326104 kB
SwapCached: 69592 kB
Активно: 2497184 kB
Неактивен: 650912 kB
Активно (анонимно): 2338748 kB
Неактивен (анонимно): 525316 kB
Активно (файл): 158436 kB
Неактивен (файл): 125596 kB
Неизбежно: 64 kB
Блокиран: 64 kB
SwapTotal: 16150524 kB
Без замяна: 15668480 kB
Мръсни: 3008 kB
Обратна връзка: 0 kB
Anon Страници: 2774656 kB
Картирано: 4414752 kB
Shmem: 59900 kB
Плоча: 130216 kB
SR Изясним: 61748 kB
S Препоръка: 68468 kB
KernelStack: 7328 kB
Таблици на страниците: 42844 kB
NFS_Настабилен: 0 kB
Скачане: 0 kB
Обратна връзка Tmp: 0 kB
CommLimit: 20094876 kB
Ангажиран_AS: 10344988 kB
Vmalloc Общо: 34359738367 kB
Vmalloc Използвано: 367296 kB
VmallocChunk: 34359345768 kB
Повреден хардуер: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Огромен размер на страниците: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$
За повече статистическа информация относно използването на процесора, паметта и процесите може да разгледате инструментите vmstat
, и йостат
(Debian пакети procps и sysstat).
Работа с процеси - ps, htop и pstree
За да покажете активните процеси на вашата Linux система, използвайте пс
команда. Обикновено изходът се сортира по азбучен ред. Но пс
команда може да направи много повече. Използване на опциите aux --сортиране -rss
изходът от списъка с процеси се сортира по тяхното използване на паметта в ред отгоре надолу. Фигура 4 показва процесите, които имат най-голямо търсене на памет. Резултатът се сортира по 6-та колона, озаглавена RSS, която съкращава Resident Set Size. Стойността е дадена в килобайта.
Командите ps, pstree
и htop
са тясно свързани по отношение на информацията, която тези инструменти показват. И двете pstree
и htop
покажете графика, за да визуализирате зависимостите от процеса. htop
действа като интерактивна версия, която ви позволява да превъртате списъка с процеси нагоре и надолу. Фигура 5 показва htop
на настолна система с избор на процеси, сортирани по специфичното им използване на паметта (5-та колона).
Намиране на процеси, които използват суап памет
Колкото повече процеси се стартират, толкова повече памет се използва едновременно. Веднага след като вашата Linux система свърши с неизползвани страници с памет, ядрото на Linux решава да замени страниците с памет на диск, използвайки метода Най-малко наскоро използвани (LRU). За да отговорите на въпроса кои процеси използват суап памет и колко се използва по-конкретно, може да разгледате изхода на най-добрата програма. През 2016 г. Erik Ljungstrom публикува кратко описание на това как да извлечете тази информация и да разширите тази колона до изхода на върха [6]. Фигура 6 показва този изход за система, която има достатъчно страници с памет в RAM и в момента не използва Swap.
Освен това, през 2011 г. той вече публикува bash скрипт, който оценява информацията от файловата система proc, за да покаже използването на процеса на суап по процес [7]. Дори 7 години по-късно и вече описан като остарял, скриптът все още е отличен и показва как да се автоматизират задачите в Linux система. Ето защо сме сигурни, че е полезно да го покажем отново тук.
Резултатът от скрипта е както следва (стартирайте като корен
потребителят извлича пълните данни):
PID = 1 - Използван суап: 0 - (systemd)
PID = 2 - Използва се суап: 0 - (kthreadd)
PID = 3 - Използван суап: 0 - (ksoftirqd / 0)
PID = 5 - Използва се суап: 0 - (kworker / 0: 0H)
PID = 6 - Използван суап: 0 - (kworker / u16: 0)
PID = 7 - Използван суап: 0 - (rcu_sched)
PID = 8 - Използван суап: 0 - (rcu_bh)
PID = 9 - Използва се суап: 0 - (миграция / 0)
PID = 10 - Използва се суап: 0 - (пазач / 0)
PID = 11 - Използва се суап: 0 - (пазач / 1)
PID = 12 - Използва се суап: 0 - (миграция / 1)
PID = 13 - Използван суап: 0 - (ksoftirqd / 1)
PID = 15 - Използва се суап: 0 - (kworker / 1: 0H)
PID = 16 - Използва се суап: 0 - (пазач / 2)
PID = 17 - Използва се суап: 0 - (миграция / 2)
PID = 18 - Използван суап: 0 - (ksoftirqd / 2)
PID = 20 - Използва се суап: 0 - (kworker / 2: 0H)
..
#
Заключение
Кутията с инструменти на Linux съдържа безкраен списък с налични програми, които да ви помогнат да анализирате използването на паметта на вашата Linux система. Току-що разгледахме - от сурови данни до предварително обработена информация - всичко е там. Просто знайте вашите инструменти. За да се запознаете с тях, отделете малко време и играйте с тях.
Това е част 2 от поредицата на Linux Kernel Memory Management. Част 1 обсъжда Swap Memory, в Част трета от тази поредица ще обсъдим как да оптимизираме използването на паметта. Това ще включва управление на дискове, както и компресирани суап файлове.
Връзки и справки
- [1] DMI в разпределена работна група за управление (DMTF)
- [2] DMI в Уикипедия
- [3] Hardinfo
- [4] lshw-gtk (пакет Debian за Stretch)
- [5] procps (пакет Debian за Stretch)
- [6] Ерик Люнгстрьом: Разберете какво използва вашия суап
- [7] Ерик Люнгстрем: Използване на суап - 5 години по-късно
Серия за управление на паметта на Linux
- Част 1: Управление на паметта на ядрото на Linux: Размяна на пространство
- Част 2: Команди за управление на Linux памет
- Част 3: Оптимизиране на използването на паметта на Linux
Благодарности
Авторът би искал да благодари на Mandy Neumeyer и Gerold Rupprecht за тяхната подкрепа при подготовката на тази статия.