- Основные конфигурационные файлы Linux
- Конфигурационные файлы Linux
- 1. /etc/adjtime
- 2. /etc/bash.bashrc
- 3. /etc/crontab
- 4. /etc/environment
- 5. /etc/fstab
- 6. /etc/group
- 7. /etc/hostname
- 8. /etc/hosts
- 9. /etc/hosts.allow и /etc/hosts.deny
- 10. /etc/issue и /etc/issue.net
- 11. /etc/ld.so.conf
- 12. /etc/localtime
- 13. /etc/login.defs
- 14. /etc/mime.types
- 15. /etc/modprobe.d/
- 16. /etc/modules-load.d/
- 17. /etc/nsswitch.conf
- 18. /etc/ntp.conf
- 19. /etc/os-release
- 20. /etc/passwd
- 21. /etc/profile
- 22. /etc/resolv.conf
- 23. /etc/sddm.conf
- 24. /etc/shadow
- 25. /etc/sudoers
- 26. /etc/sysctl.conf
- 27. /etc/vconsole.conf
- 28. /boot/grub/grub.cfg
- Выводы
- MySQL 8 sample config (my.cnf example) and tuning.
- Sample MySQL 8 Config
- max_conections
- innodb_buffer_pool_instances
- MySQL buffers
- Misc.
- Paste of MySQL 8 my.cnf
- MySQL server ‘status’
- Continue reading MySQL performance-related guides
Основные конфигурационные файлы Linux
Операционная система Linux в отличие от Windows не имеет общего реестра для хранения настроек системы, все настройки хранятся в конфигурационных файлах. Большинство этих файлов размещено в папке /etc/.
Настройки большинства системных и сторонних программ находятся в этих файлах, это могут быть настройки графического сервера, менеджера входа, системных служб, веб-сервера, системы инициализации.
Только часть файлов конфигурации находятся в других папках, например, файлы настройки рабочего окружения в домашнем каталоге пользователя. Новичкам очень важно понимать, за что отвечают те или иные конфигурационные файлы, чтобы при необходимости очень быстро сориентироваться. В этой статье мы рассмотрим основные конфигурационные файлы Linux, их расположение и предназначение.
Конфигурационные файлы Linux
На самом деле в самой системы Linux конфигурационных файлов нет. Поскольку операционная система — это всего лишь набор программ и ядро, то все эти файлы были созданы определенными программами и читаются ими же для настройки поведения. Большинство файлов, которые мы привыкли считать стандартными, относятся к системе инициализации или к другим системным утилитам.
Как я уже сказал, большинство файлов размещено в /etc. Название этой папки расшифровывается как «et cetera», что с латинского означает «и другие» или «и так далее». Сначала давайте посмотрим содержимое каталога /etc Linux:
Здесь достаточно много различных файлов. Дальше мы рассмотрим назначение многих из них. Список отсортирован по алфавиту.
1. /etc/adjtime
Этот конфигурационный файл отвечает за настройку формата системного времени и читается службой systemd-timedated. Время может быть представлено в двух вариантах: LOCAL — время текущего часового пояса и UTC — время по Гринвичу. Вы можете вручную менять значение или воспользоваться утилитой timedatectl.
2. /etc/bash.bashrc
Этот файл принадлежит командной оболочке bash. Это не совсем конфигурационный файл — а скрипт, его содержимое выполняется при запуске каждого экземпляра bash для настройки оболочки. Точно так же выполняется содержимое файла ~/.bashrc для каждого пользователя.
3. /etc/crontab
Crontab — файл настройки планировщика cron. Здесь записываются все задания, которые должен выполнить планировщик, а также время и периодичность. Этот файл не принято редактировать напрямую. Для этого используется утилита crontab -e.
4. /etc/environment
Здесь содержатся переменные окружения, которые будут загружены для каждого сеанса терминала, независимо от того запущен он на локальной машине или по ssh. Файл читается скриптами Bash во время инициализации оболочки.
5. /etc/fstab
Наверное, все уже знают файл /etc/fstab. Здесь выполняется настройка монтирования файловых систем во время загрузки. В современных системах он читается systemd и все записи на ходу транслируются в юнит-файлы, с помощью которых уже выполняется монтирование. Смотрите также: автоматическое монтирование fstab.
6. /etc/group
В этом файле хранятся все группы пользователей, которые есть в системе. С помощью него вы можете посмотреть список групп, их идентификаторы или добавить новые. Но добавлять группы с помощью редактирования файла не принято, для этого есть утилита usermod.
7. /etc/hostname
В этом файле содержится имя хоста, файл будет прочитан во время загрузки системы и указанное имя компьютера установится в системе. Вы будете его видеть в приглашении ввода терминала или в информации о системе.
8. /etc/hosts
Файл /etc/hosts позволяет задавать псевдонимы для различных сетевых узлов. Таким образом, компьютер не обращается к DNS для получения IP домена, а берет его из hosts. Это позволяет, например, заблокировать доступ к нежелательным сайтам просто перенаправив их на localhost или же получить доступ к сайту по ip, которому еще не присвоен домен.
9. /etc/hosts.allow и /etc/hosts.deny
С помощью этих двоих файлов можно настраивать права доступа ко всем локальным службам. Например, вы можете разрешить доступ к службе apache только с локального компьютера. Это очень сильно повысит безопасность системы, если ваш компьютер подключен к публичной сети.
10. /etc/issue и /etc/issue.net
Баннер, который будет выводиться при входе в командную оболочку локально или по SSH. Обычно там выводится версия ядра и дистрибутива Linux, но вы можете заменить эту информацию по своему усмотрению.
11. /etc/ld.so.conf
В этом файле содержатся пути к папкам, в которых компоновщик linux ld.so будет искать динамические библиотеки во время запуска программ. Папки /lib64, /lib, /usr/lib64 и /usr/lib будут проверены автоматически.
12. /etc/localtime
Это символическая ссылка, которая указывает на файл часового пояса в папке /usr/share/zoneinfo/. Редактировать файл не нужно, а для изменения настроек нужно создать символическую ссылку на другую временную зону.
13. /etc/login.defs
Файл /etc/login.defs отвечает за настройку поведения утилиты управления пользователями и параметры входа в систему. Вы можете настроить какой минимальный и максимальный id нужно выдавать, что делать с папкой пользователя при удалении и многое другое, количество попыток входа и таймаут, а также многое другое.
14. /etc/mime.types
В этом файле содержатся общесистемные правила преобразования расширений файлов в понятные системе MIME типы данных. Затем уже система выбирает, чем открыть тот или иной тип данных.
15. /etc/modprobe.d/
Папка /etc/modprobe содержит конфигурационные файлы со списками модулей ядра, которые не нужно загружать при старте системы, псевдонимами для существующих модулей, а также позволяет задавать настройки для модулей.
16. /etc/modules-load.d/
Папка /etc/modules-load.d/ содержит файлы со списками модулей, которые должны быть загружены при запуске системы. Имя файла не важно, но он должен иметь расширение .conf.
17. /etc/nsswitch.conf
Этот файл задает настройки порядка разрешения имен в системе для всех программ, написанных на Си или С++. Например, нужно сначала просматривать локальную сеть и систему, или сразу же отправлять запрос к DNS.
18. /etc/ntp.conf
Файл ntp.conf отвечает за настройку службы синхронизации времени — ntpd. В файле указаны адреса ntp серверов, с которых служба будет получать время, а также общие настройки.
19. /etc/os-release
Отображает очень подробную информацию об установленном дистрибутиве:
20. /etc/passwd
Файл содержит список всех зарегистрированных в системе пользователей, а также дополнительные настройки для них, например, оболочку, дату смены пароля и дату отключения аккаунта, кроме самого пароля. Напрямую файл лучше не редактировать, а использовать утилиту для управления пользователями adduser или deluser.
21. /etc/profile
Файл /etc/profile, точно так же как и /etc/environment загружается и выполняется при запуске любой командной оболочки в системе. Но в отличие от environment, это скрипт, а значит, он может задавать не только переменные, но и выполнять различные команды для инициализации оболочки.
22. /etc/resolv.conf
В этом файле содержатся IP адреса DNS серверов, которые будет использовать компьютер. В большинстве дистрибутивов вы можете редактировать файл вручную или же использовать специальные утилиты.
23. /etc/sddm.conf
Это конфигурационный файл Linux для настройки менеджера входа sddm, для других менеджеров входа будут свои файлы настройки. Здесь можно изменить максимальный и минимальный ID пользователя, который может войти в систему, например, чтобы разрешить авторизацию root, изменить тему, добавить вход без пароля и многое другое.
24. /etc/shadow
Раньше пароли пользователя содержались в файле /etc/passwd, но поскольку к нему мог получить доступ любой пользователь, это было небезопасно, несмотря на то, что пароли зашифрованы. Поэтому все пароли были вынесены в /etc/shadow. Вы можете изменить пароль пользователя.
25. /etc/sudoers
/etc/sudoers — это файл настройки прав доступа к утилите sudo. Эта утилита позволяет выполнять команды от имени других пользователей, в том числе от имени суперпользователя. Но использовать ее могут только те пользователи, которые прописаны в этом файле.
26. /etc/sysctl.conf
Этот файл отвечает за настройку параметров ядра во время выполнения. Тут вы можете задать все параметры из подсистемы /sys/ и они будут сохранены после перезагрузки.
27. /etc/vconsole.conf
У этого файла только одна цель — задать кодировку, раскладку клавиатуры и шрифт по умолчанию для всех виртуальных консолей, запускаемых на машине.
28. /boot/grub/grub.cfg
Этот конфигурационный файл Linux находится не в /etc из-за своего особого предназначения. Здесь содержатся все настройки загрузчика, пункты меню и другие параметры, поэтому он должен быть доступен еще до того как была подключена корневая файловая система.
Выводы
В этой статье мы рассмотрели основные конфигурационные файлы Linux, которые находятся в папке /etc/. Возможно, какие-либо важные файлы, по вашему мнению, упущены, тогда обязательно расскажите о них и их предназначении в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
MySQL 8 sample config (my.cnf example) and tuning.
With the release of MySQL 8 I wanted to paste my tuned my.cnf (MySQL configuration file) for discussion, suggestions, and questions. To get the most out of your MySQL 8 installation, you will need to configure it correctly and tune the settings for your specific use case. In this blog post, we will discuss my sample MySQL 8 configuration file and some tips for tuning the settings for optimal performance.
The MySQL configuration file, also known as my.cnf, is a text file that contains configuration settings for your MySQL installation. The file is usually located in the MySQL installation directory, and it can be edited with a text editor.
With the launch of this blog’s tech forums, I’m hoping that the performance tuning tips that emerge will be from all of us who manage MySQL databases. Recommendations are continued in the comments section at the end of this article.
Screenshot from btop showing MySQL 8 memory and CPU usage.
Sample MySQL 8 Config
The my.cnf configuration file shared below is from a standalone MySQL 8 server that was recently separated from a web server. It consistently performs around 9,000 queries per second (QPS) on average.
However, there are occasional spikes where the QPS increases to around 40,000 and lasts for a few days. These events occur roughly 5 to 10 times a year.
Some of the notable config lines are:
max_conections
max_conections is set for the 5 to 10 times per year peak connections,
thread_cache_size
thread_cache_size is set somewhere in between normal traffic and those peak days.
innodb_buffer_pool_instances
innodb_buffer_pool_instances is set to 48 because innodb_dedicated_server automatically sets innodb_buffer_pool_size to 48 GB. See the chart below:
Source: https://dev.mysql.com/doc/refman/8.0/en/innodb-dedicated-server.html
MySQL buffers
For read_buffer_size , join_buffer_size , sort_buffer_size and read_rnd_buffer_size , please read this important tuning article.
Misc.
Paste of MySQL 8 my.cnf
[mysqld] disable-log-bin = 1 skip-name-resolve = 1 performance-schema = 0 local-infile = 0 mysqlx = 0 bind-address = [IPs removed] open_files_limit = 200000 max_allowed_packet = 256M sql_mode = "STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" innodb_dedicated_server = 1 innodb_buffer_pool_instances = 48 innodb_log_buffer_size = 64M innodb_read_io_threads = 12 innodb_write_io_threads = 12 innodb_stats_on_metadata = 0 innodb_file_per_table = 1 max_connections = 500 thread_cache_size = 128 table_definition_cache = 65536 table_open_cache = 65536 wait_timeout = 10 connect_timeout = 5 interactive_timeout = 30 tmp_table_size = 128M max_heap_table_size = 128M read_buffer_size = 256K join_buffer_size = 512K sort_buffer_size = 512K read_rnd_buffer_size = 512K slow-query-log = 1 long_query_time = 2 slow_query_log_file = /var/log/mysql_slow_query.log log-error = /var/log/mysql/db.[removed].com.err
Have questions or suggestions? Add your comment at the end of this article.
MySQL server ‘status’
This is the output of MySQL status for the above MySQL server:
mysql> status -------------- Server version: 8.0.30 MySQL Community Server - GPL Uptime: 37 days 5 hours 39 min 39 sec Threads: 8 Questions: 31068214993 Slow queries: 0 Opens: 36331 Flush tables: 1 Open tables: 36024 Queries per second avg: 9656.974