From 763ec7240268db72a23c841d53fbc1587c9803dd Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Fri, 27 Aug 2021 12:15:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wiki/Linux/System/Настройка Redis.adoc | 44 ++++++++++++++++++ .../Настройка параметров локальной сети.adoc | 29 ++++++++++++ ...рограммный проект и иерархия каталогов.adoc | 45 +++++++++---------- 3 files changed, 95 insertions(+), 23 deletions(-) create mode 100644 wiki/Linux/System/Настройка Redis.adoc create mode 100644 wiki/Linux/System/Настройка параметров локальной сети.adoc diff --git a/wiki/Linux/System/Настройка Redis.adoc b/wiki/Linux/System/Настройка Redis.adoc new file mode 100644 index 0000000..e608e6c --- /dev/null +++ b/wiki/Linux/System/Настройка Redis.adoc @@ -0,0 +1,44 @@ += Настройка Redis +:category: Linux +:tags: Linux, Redis, + +Создать файл `/etc/sysctl.d/98-redis.conf`: + +[source,text] +---- +net.core.somaxconn=65535 +vm.overcommit_memory=1 +---- + +Перезагрузить систему или выполнить команду: + +[source,sh] +---- +sudo sysctl -p +---- + +Создать файл `/etc/systemd/system/disable-transparent-huge-pages.service`: + +[source,text] +---- +[Unit] +Description=Disable Transparent Huge Pages (THP) +DefaultDependencies=no +After=sysinit.target local-fs.target +Before=mongod.service redis.service redis-server.service + +[Service] +Type=oneshot +ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null' + +[Install] +WantedBy=basic.target +---- + +Разрешить автоматический запуск при загрузке системы: + +[source,sh] +---- +sudo systemctl enable disable-transparent-huge-pages.service +---- + diff --git a/wiki/Linux/System/Настройка параметров локальной сети.adoc b/wiki/Linux/System/Настройка параметров локальной сети.adoc new file mode 100644 index 0000000..70db22d --- /dev/null +++ b/wiki/Linux/System/Настройка параметров локальной сети.adoc @@ -0,0 +1,29 @@ += Настройка параметров локальной сети +:category: Linux +:tags: Linux, сеть, ethernet + +Создать файл `/etc/sysctl.d/98-network.conf`: + +[source,text] +---- +net.core.rmem_default=262144 +net.core.wmem_default=262144 + +net.core.rmem_max=33554432 +net.core.wmem_max=33554432 + +net.ipv4.tcp_rmem = 4096 262144 33554432 +net.ipv4.tcp_wmem = 4096 262144 33554432 +net.ipv4.tcp_mem = 4096 262144 33554432 + +net.core.netdev_max_backlog = 16384 +net.ipv4.ipfrag_high_threshold = 8388608 +---- + +Перезагрузить систему или выполнить команду: + +[source,sh] +---- +sudo sysctl -p +---- + diff --git a/wiki/Prog/Development/Программный проект и иерархия каталогов.adoc b/wiki/Prog/Development/Программный проект и иерархия каталогов.adoc index b06f805..e616b82 100644 --- a/wiki/Prog/Development/Программный проект и иерархия каталогов.adoc +++ b/wiki/Prog/Development/Программный проект и иерархия каталогов.adoc @@ -74,8 +74,6 @@ https://ru.wikipedia.org/wiki/FHS[FHS] («стандарт иерархии фа | systemLogDirectory() | Полный путь к системному каталогу с журналами работы | executableFileDirectory() | Полный путь к каталогу с исполняемым файлом | executableFileName() | Имя исполняемого файла -| configFilePath() | Полный путь к файлу настройки -| configFileName() | Имя файла настройки | projectName() | Имя подкаталога для проекта |=== @@ -87,7 +85,7 @@ https://ru.wikipedia.org/wiki/FHS[FHS] («стандарт иерархии фа namespace MF = myx::filesystem; MF::Paths& paths = MF::Paths::instance(); -paths.init( QStringLiteral( "project_name" ), QStringLiteral( "conf" ) ); +paths.init(); qDebug() << paths.systemConstDataDirectory().path(); ---- @@ -102,8 +100,9 @@ qDebug() << paths.systemConstDataDirectory().path(); данных и журналов. Эти значения не зависят от расположения исполняемого файла, а определяются в соответствии со значениям переменных окружения `HOME`, `TMPDIR`, `XDG_CONFIG_HOME` и `XDG_DATA_HOME`, либо устанавливаются значения, -принятые в стандартах. Пример имён каталогов для пользователя `user` -и проекта `project` приведён в таблице. +принятые в стандартах. Пример имён каталогов для пользователя `user`, +названия организации `org`, названия выполняемой работы `theme` и проекта +`project` приведён в таблице. .Стандартные каталоги для текущего пользователя [cols="4,4m,6m",options="header"] @@ -111,10 +110,10 @@ qDebug() << paths.systemConstDataDirectory().path(); | Назначение каталога | Метод | Значение | Домашний каталог | homeDirectory() | /home/user | Временные файлы | tempDirectory() | /tmp -| Файлы настройки | userConfigDirectory() | /home/user/.config/project -| Неизменяемые файлы | userConstDataDirectory() | /home/user/.local/share/project/data -| Изменяемые файлы | userVarDataDirectory() | /home/user/.local/share/project/lib -| Журналы работы | userLogDirectory() | /home/user/.local/share/project/log +| Файлы настройки | userConfigDirectory() | /home/user/.config/org-theme/project +| Неизменяемые файлы | userConstDataDirectory() | /home/user/.local/share/org-theme/project/share +| Изменяемые файлы | userVarDataDirectory() | /home/user/.local/share/org-theme/project/var +| Журналы работы | userLogDirectory() | /home/user/.local/share/org-theme/project/log |=== === Общая проверка @@ -135,7 +134,7 @@ IMPORTANT: При проверке типов иерархии всегда пр Если полный путь к исполняемому файлу начинается с `/opt` и содержит в себе название текущего проекта, например -`/opt/org/project/bin/application`, то выполняется проверка +`/opt/org-theme/project/bin/application`, то выполняется проверка на наличие сопутствующих системных каталогов. Если они присутствуют, то принимается решение, что окружение в иерархии `/opt` сформировано правильно, иначе делается заключение о том, что файлы всех типов находятся @@ -147,11 +146,11 @@ IMPORTANT: При проверке типов иерархии всегда пр [cols="4,4m,5m",options="header"] |=== | Назначение файла / каталога | Метод | Значение -| Исполняемый файл | executableFilePath() | /opt/org/project/bin/application -| Файлы настройки | systemConfigDirectory() | /opt/org/project/etc -| Неизменяемые файлы | systemConstDataDirectory() | /opt/org/project/files/data -| Изменяемые файлы | systemVarDataDirectory() | /opt/org/project/files/lib -| Журналы работы | systemLogDirectory() | /opt/org/project/files/log +| Исполняемый файл | executableFilePath() | /opt/org-theme/project/bin/application +| Файлы настройки | systemConfigDirectory() | /opt/org-theme/project/etc +| Неизменяемые файлы | systemConstDataDirectory() | /opt/org-theme/project/share +| Изменяемые файлы | systemVarDataDirectory() | /opt/org-theme/project/var +| Журналы работы | systemLogDirectory() | /opt/org-theme/project/log |=== @@ -217,10 +216,10 @@ IMPORTANT: При проверке типов иерархии всегда пр |=== | Назначение файла / каталога | Метод | Значение | Исполняемый файл | executableFilePath() | /home/user/bin/application -| Файлы настройки | systemConfigDirectory() | /home/user/.config/project -| Неизменяемые файлы | systemConstDataDirectory() | /home/user/.local/share/project/data -| Изменяемые файлы | systemVarDataDirectory() | /home/user/.local/share/project/lib -| Журналы работы | systemLogDirectory() | /home/user/.local/share/project/log +| Файлы настройки | systemConfigDirectory() | /home/user/.config/org-theme/project +| Неизменяемые файлы | systemConstDataDirectory() | /home/user/.local/share/org-theme/project/share +| Изменяемые файлы | systemVarDataDirectory() | /home/user/.local/share/org-theme/project/var +| Журналы работы | systemLogDirectory() | /home/user/.local/share/org-theme/project/log |=== @@ -243,10 +242,10 @@ IMPORTANT: При проверке типов иерархии всегда пр |=== | Назначение файла / каталога | Метод | Значение | Исполняемый файл | executableFilePath() | /home/user/work/project/_build/debug/bin/application -| Файлы настройки | systemConfigDirectory() | /home/user/work/project/_build/debug/etc/ -| Неизменяемые файлы | systemConstDataDirectory() | /home/user/work/project/_build/debug/files/data -| Изменяемые файлы | systemVarDataDirectory() | /home/user/work/project/_build/debug/files/lib -| Журналы работы | systemLogDirectory() | /home/user/work/project/_build/debug/files/log +| Файлы настройки | systemConfigDirectory() | /home/user/work/project/_build/debug/etc +| Неизменяемые файлы | systemConstDataDirectory() | /home/user/work/project/_build/debug/share +| Изменяемые файлы | systemVarDataDirectory() | /home/user/work/project/_build/debug/var +| Журналы работы | systemLogDirectory() | /home/user/work/project/_build/debug/log |===