В этой статье в качестве примера используется система CentOS, но то же самое относится и к другим дистрибутивам Linux. Не нужно зацикливаться на какой-то конкретной версии.Понять замысел дизайнаВот и все.
Эта статья обновляется в любое время. За исключением опечаток, никаких других замечаний не делается.
Обзор
- Круглые узлы относятся к каталогам, а квадратные узлы относятся к файлам.
- Многие необычные каталоги и файлы не показаны на рисунке.
- поговорим позже
/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/local
directory_(структура с/usr
каталог аналогичный)Установите личное программное обеспечение пользователя в собственный домашний каталог пользователя..
Ссылаться на:
Ссылка на эту статью:Структура каталогов файловой системы Linux
автор:обезьяна 007
Источник:monkeysayhi.github.io
Эта статья основана наCreative Commons Attribution-ShareAlike 4.0Выпущено по международному лицензионному соглашению, приветствуется перепечатка, вывод или использование в коммерческих целях, но авторство и ссылка на эту статью должны быть сохранены.