Как да използвате файловата система /proc за наблюдение на вашата Linux система

Сподели

Днес ще разгледаме съдържанието на /процес директория, за да развиете по-добро разбиране на нейните функционалности. Важно е да се отбележи, че /процес директорията е обща характеристика във всички дистрибуции на Linux, независимо от техния вкус или архитектура.

Едно погрешно схващане, което трябва незабавно да изясним, е, че /процес директорията НЕ е конвенционална файлова система в традиционния смисъл на термина.

Това е виртуална файлова система, която съдържа информация за процеси и други свързани със системата данни в рамките на procfs. Тази файлова система е съпоставена към /процес директория и се монтира по време на процеса на зареждане на системата.

Какво е /proc в Linux

The /процес файловата система служи като интерфейс към структурите от данни на ядрото и информацията по време на изпълнение, което предоставя начин както на потребителите, така и на приложенията за достъп до подробна информация за процеси, системна конфигурация, хардуер и други, като излага тези данни чрез йерархия от виртуални файлове.

За да видите пълен списък с файлове и директории в /процес файлова система, можете да използвате командата ls, както е показано.

$ ls /proc
Вижте Linux /proc файлова система
Вижте Linux /proc файлова система

Навигация /proc в Linux

Когато навигирате до /процес директория, ще забележите, че има някои познато звучащи файлове и след това цял куп номерирани директории, всяка от които съответства на работещ процес в системата.

$ cd /proc
$ ls
Навигирайте /proc файлова система
Навигирайте /proc файлова система

Тези номерирани директории представляват процесите, по-известни като идентификатори на процеси (PID), и в тях команда, която ги заема. Файловете съдържат системна информация като памет (meminfo), информация за процесора (cpuinfo) и налични файлови системи.

Ето няколко ключови файла и директории, които ще срещнете:

  • /proc/cpuinfo – Избройте информация за процесора(ите) в системата, като например модел, скорост и брой ядра.
  • /proc/meminfo – Избройте подробности за използването на паметта и статистика, която съдържа общото количество памет, свободната памет и паметта, използвана от всеки процес.
  • /proc/filesystems – Съдържа списък на всички файлови системи, които се поддържат от ядрото.
  • /proc/sys – Списък на конфигурацията и параметрите за изпълнение на ядрото.
  • /proc/loadavg – Показване на средно натоварване на системата за различни интервали от време като 1, 5 и 15 минути.
  • /proc/self – Символна връзка към собствената директория на процеса.
  • /proc/stat – Съдържа различни статистически данни за системата, като например броя на изпълняваните процеси, броя на прекъсванията и времето, прекарано във всяко състояние на процесора.
  • /proc/uptime – Съдържа времето, през което системата е работила.
  • /proc/PID – Съдържа информация за конкретен процес, където PID е ID на процеса.

Извличане на системна информация

The /proc/meminfo се използва за показване на информация за използването на паметта и статистиката на Linux система, която съдържа моментна снимка на различни показатели, свързани с паметта, които могат да бъдат полезни за наблюдение на производителността на системата и използването на ресурсите.

$ cat /proc/meminfo
Показване на използването на паметта и статистиката на Linux система
Показване на използването на паметта и статистиката на Linux система

Както виждаш, /proc/meminfo съдържа куп информация за паметта на вашата система, включително общия наличен обем (в kb) и безплатната сума в горните два реда.

Изпълнение на командата cat на всеки от файловете в /процес ще изведе тяхното съдържание. Информация за всички файлове е достъпна в страницата с ръководството, като изпълните:

$ man 5 /proc/<filename>

Ще ви дам бърз преглед /процеси файлове:

  • /proc/cmdline – Информация за командния ред на ядрото.
  • /proc/конзола – Информация за текущите конзоли, включително tty.
  • /proc/устройства – Драйвери на устройства, текущо конфигурирани за работещото ядро.
  • /proc/dma – Информация за текущите DMA канали.
  • /proc/fb – Framebuffer устройства.
  • /proc/файлова системаs – Текущи файлови системи, поддържани от ядрото.
  • /proc/iom – Текуща карта на системната памет за устройства.
  • /proc/ioports – Регистрирани региони на портове за входно-изходна комуникация с устройството.
  • /proc/loadavg – Средно натоварване на системата.
  • /proc/locks – Файлове, които в момента са заключени от ядрото.
  • /proc/meminfo – Информация за системната памет (вижте примера по-горе).
  • /proc/разни – Различни драйвери, регистрирани за различни основни устройства.
  • /proc/modules – Текущо заредени модули на ядрото.
  • /proc/монтира – Списък на всички монтирания, използвани от системата.
  • /proc/дялове – Подробна информация за наличните за системата дялове.
  • /proc/pci – Информация за всяко PCI устройство.
  • /proc/stat – Запис или различни статистики, запазени от последното рестартиране.
  • /proc/swap – Информация за суап пространство.
  • /proc/време на работа – Информация за времето на работа (в секунди).
  • /proc/версия – Инсталирана версия на ядрото, версия на gcc и дистрибуция на Linux.

Извличане на информация за процеса

В рамките на /процеси номерирани директории ще намерите няколко файлове и връзки. Не забравяйте, че номерата на тези директории корелират с PID на командата, която се изпълнява в тях.

Например навигация до /proc/<PID> предоставя подробности като:

  • /proc/<PID>/cmdline – Аргументи на командния ред, използвани за стартиране на процеса.
  • /proc/<PID>/status – Подробна информация за състоянието, включително използване на паметта и статистически данни за процеса.
  • /proc/<PID>/fd – Символни връзки към файлове, отворени от процеса.

Нека използваме пример, за да видим папка, наречена /proc/12.

$ cd /proc/12
$ ls

Ако тичам:

$ cat /proc/12/status

Получавам следното:

Избройте PID информация за процеса
Избройте PID информация за процеса

И така, какво означава това? Е, важната част е на върха. Можем да видим от файла със състоянието, към който принадлежи този процес rcu_tasks_rude_kthread. Сегашното му състояние е празени неговия процес документ за самоличност е 12очевидно.

Можем също да видим кой управлява това, като UID и GID са 0което показва, че този процес принадлежи на корен потребител.

Във всяка номерирана директория ще имате подобна файлова структура, а най-важните с техните описания са както следва:

  • cmdline – команден ред на процеса
  • околна среда – променливи на околната среда
  • fd – файлови дескриптори
  • граници – съдържа информация за границите на процеса
  • монтажи – свързана информация

Ще забележите също редица връзки в номерираната директория:

  • cwd – връзка към текущата работна директория на процеса
  • екз – връзка към изпълнимия файл на процеса
  • корен – връзка към работната директория на процеса

Това трябва да ви помогне да се запознаете с /процес указател. Трябва също така да предостави представа за това как редица команди получават своята информация, като време за работа, lsof, mount и ps, само за да назовем няколко.

Публикациите се превеждат автоматично с google translate

Loading


Сподели