Структура каталогов файловой системы Linux

задняя часть Linux Yarn CentOS

В этой статье в качестве примера используется система CentOS, но то же самое относится и к другим дистрибутивам Linux. Не нужно зацикливаться на какой-то конкретной версии.Понять замысел дизайнаВот и все.

Эта статья обновляется в любое время. За исключением опечаток, никаких других замечаний не делается.

Обзор

image.png

  • Круглые узлы относятся к каталогам, а квадратные узлы относятся к файлам.
  • Многие необычные каталоги и файлы не показаны на рисунке.
  • поговорим позже/procкаталог с/varсодержание.

Linux рассматривает всю файловую систему как дерево, и корень этого дерева называется корневой файловой системой, представленной «/».

содержание содержание Пример
/bin Команды для основных задач обслуживания для всех пользователей ls, cp
/etc Файлы конфигурации для системного и прикладного программного обеспечения bashrc, passwd
/home обычный домашний каталог пользователя /home/msh
/lib Самая основная общая библиотека ссылок и модуль ядра системы. libc-2.17.so
/root домашний каталог пользователя root .bashrc, .ssh
/sbin Исполняемые файлы, используемые суперпользователями, которые в основном представляют собой команды управления системой. ifconfig, iptables
/tmp хранить временные файлы

/usrСтруктура каталога аналогична структуре корневого каталога, но файлы в корневом каталоге в основном являются файлами системного уровня, в то время как/usrКаталог представляет собой файл пользовательского уровня, обычно не зависящий от конкретной системы.

содержание содержание Пример
/usr/bin Где хранится большинство повседневных приложений yum, git
/usr/include Заголовочные файлы C/C++ ctype.h
/usr/lib Файлы библиотеки, используемые обычными пользователями файл библиотеки mysql
/usr/local Лично устанавливаемое программное обеспечение, которое обычно необходимо указывать вручную; структура каталогов аналогична каталогу «/usr»
/usr/sbin Программы управления системой не требуются для суперпользователей useradd

высший приоритет

/прок каталог

/procкаталог монтирует虚拟文件系统,от虚拟文件Форма отображает системную информацию и информацию о времени выполнения процесса в памяти.

системное сообщение

/procНепосредственные подкаталоги ниже обычно хранят системную информацию. Есть только две широко используемые обезьяны:

содержание содержание Пример
/proc/cpuinfo Информация о процессоре физический идентификатор, ядра процессора, братья и сестры, процессор
/proc/version Номер версии ядра системы Linux version 3.10.0

/proc/versionОпределите номер версии ядра и архитектуру ЦП (например, i686);/etc/centos-releaseОпределите номер версии выпуска (аналогично другим выпускам).

uname -aиcat /proc/versionимеет аналогичный эффект.

Обрабатывать информацию

Дело в том/proc/<pid>Информация об обработке для сопоставления каталогов. Возьмем в качестве примера процесс rsyslogd:

содержание содержание Пример
/proc/<pid>/cmdline Полная команда для запуска текущего процесса /usr/sbin/rsyslogd-n
/proc/<pid>/cwd Мягкая ссылка текущего рабочего каталога процесса cwd -> /
/proc/<pid>/environ Список переменных среды для текущего процесса LANG=zh_CN.UTF-8
/proc/<pid>/exe Мягкая ссылка на исполняемый файл, который запускает текущий процесс exe -> /usr/sbin/rsyslogd
/proc/<pid>/fd Каталог, содержащий файловые дескрипторы текущего процесса (существующие в виде программных ссылок, указывающих на фактические файлы). 2 -> /dev/null
6 -> /var/log/messages
/proc/<pid>/limits Мягкий лимит, жесткий лимит (и единицы) ресурсов, используемых текущим процессом открытые файлы (мягкое ограничение по умолчанию 1024)
/proc/<pid>/task Каталог для хранения информации о каждом потоке, запущенном текущим процессом;<tid>В качестве имени каталога каждого потока структура каталогов такая же, как/proc/<pid>сходство 1037, 1050, 1051

Несколько дополнительных моментов:

  • Просмотрите или измените лимит ресурсов текущего процесса с помощью ulimit.
  • Мягкие ограничения могут быть изменены самим процессом в любое время; жесткие ограничения могут быть изменены только с привилегиями root.
  • Справочник по взаимосвязи между процессами и потоками в LinuxГоворя о модели потоков Linux и переключении потоков.

/var каталог

/varВ каталоге хранятся файлы данных, такие как данные программы, журналы и т. д., но в сети обычно хранятся только журналы./varсодержание.

системный журнал /var/журнал/сообщения

Записывайте журналы системного уровня через rsyslog, файл конфигурации/etc/rsyslog.conf. сконцентрируйся/var/log/messagesКонфигурация:

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

*.infoУказывает, что все услуги с приоритетом больше или равным info будут записаны в/var/log/messagesсередина;mail.noneУказывает, что почтовая информация не будет записываться в/var/log/messagesсередина.

Вышеупомянутая конфигурация означает:За исключением аутентификации безопасности, почты и запланированных задач, информация и журналы более высокого уровня, выводимые на стандартный вывод, stderr, записываются в/var/log/messagesсередина.

OOM kill

подвиг обезьяны/var/log/messagesОднажды я обнаружил проблему с OOM kill.

Пользователь часто жалуется, что после того, как его приложение упоминает Yarn, контейнер по-разному выходит из 137 и пытается снова. Если предположить, что фреймворк не выйдет из 137 сам по себе, то обычно 137 означает, что контейнер выходит из-за kill -9, поэтому наставник предлагает обезьяне убить из-за OOM. Чтобы проверить эту идею, необходимо найти «следы уничтожения связанных контейнеров с помощью OOM».

Linux отслеживает использование памяти, когда памяти не хватает, OOM killer вычисляет приоритет процесса и убивает процесс с наивысшим приоритетом, чтобы освободить память. С другой стороны, кластеры Yarn, как правило, настроены на чрезмерную выдачу ресурсов (сама система Linux также имеет избыточную выдачу памяти).Когда ресурсы кластера ограничены, большие контейнеры легко уничтожаются OOM.

Три шага уничтожения OOM, «обнаружение недостаточного объема памяти», «вычисление приоритета» и «выбор уничтожения процесса» будут записаны в/var/log/messagesсередина, обезьяна действительно нашла журнал уничтожения OOM соответствующего контейнера рядом с моментом времени, указанным пользователем, и память также аналогична ресурсу, запрошенному контейнером.

проверенный.

В процессе суждения есть небольшие проблемы:

  • Обезьяна судит, является ли это целевым процессом, по моменту времени, когда контейнер был уничтожен OOM, и памяти, которая строго не определена.

Совет для личного использования

Для понимания этой статьи читателям не нужно заботиться о различиях между разными дистрибутивами и версиями ядра.

Да, есть разница. Например: CentOS 6.5 может проверять структуру каталогов, которая будет описана в этой статье, но в CentOS 7.2/binТак называемый «каталог системного уровня» был мягко связан с/usr/binНапример, так называемый «каталог пользовательского уровня». Другие дистрибутивы, такие как Debian, могут отличаться еще больше.

Если вам нужно продолжить, обычно рекомендуется установить программное обеспечение, совместно используемое всеми пользователями, чтобы/usr/localdirectory_(структура с/usrкаталог аналогичный)Установите личное программное обеспечение пользователя в собственный домашний каталог пользователя..


Ссылаться на:


Ссылка на эту статью:Структура каталогов файловой системы Linux
автор:обезьяна 007
Источник:monkeysayhi.github.io
Эта статья основана наCreative Commons Attribution-ShareAlike 4.0Выпущено по международному лицензионному соглашению, приветствуется перепечатка, вывод или использование в коммерческих целях, но авторство и ссылка на эту статью должны быть сохранены.