Содержание
Survival Evolved и как повысить FPS
HarE_
Мнения
Оптимизация ARK: Survival Evolved далека от идеальной. Оптимизировать игру и повысить FPS можно несколькими способами.
Недавно вышедшая компьютерная игра ARK: Survival Evolved, посвященная выживанию на острове с динозаврами, набирает все большую популярность. Но из-за того, что проект находится еще на стадии тестирования, а также вследствие кривого порта игры с консолей на ПК, игра часто зависает и тормозит, периодически возникают ошибки и ухудшается производительность. Есть несколько возможных вариантов решения проблем с производительностью. Дальше нами описаны решения по оптимизации ARK: Survival Evolved.
- Для начала рекомендуется все же приобрести лицензионную версию игры, если ранее по каким-то причинам это не было сделано.
- Желательно устанавливать все официальные патчи к игре, так как разработчики постоянно стараются улучшить и оптимизировать свой проект. Например, в одном из последних обновлений исправлен баланс, значительно улучшена визуальная составляющая и повышена производительность.
- Необходимо проверить установленную версию драйверов для видеокарты. Если она устарела — следует обновить до последней версии.
- Чтобы значительно повысить FPS в ARK: Survival Evolved, нужно обратить внимание на некоторые пункты в меню настроек, которые влияют на производительность игры. Например, можно отключить или снизить следующие параметры: размытие при движении, детализация тени, неба и отражения. Это поможет избежать резких скачков FPS в игре.
- Тем игрокам, кто использует видеоадаптер NVidia, необходимо запустить игру, затем свернуть и зайти в панель управления NVidia. Выбрать режим управления электропитанием, затем указать в предпочтениях максимальную производительность процессора. Также оптимизировать FPS в компьютерной игре может помочь отключение вертикальной синхронизации в меню управления параметрами 3D.
|
Кино и сериалы
Джейсон Момоа намекнул на грандиозные новости о своем будущем в киновселенной DC
|
Обновления
Cyberpunk 2077: Phantom Liberty станет крупнейшим DLC в истории CD Projekt
|
Индустрия
В России отмечается небывалый рост ссылок с пиратским контентом
|
Индустрия
Google Stadia официально закрылась
Блогер раскрыл новые детали бесплатной стратегии Stormgate, от создателей StarCraft 2 и Warcraft 3
|
Индустрия
Успешная премьера сериала по мотивам The Last of Us привела к росту продаж серии игр
Создатели The Callisto Protocol показали атмосферные концепт-арты хоррора
|
Индустрия
Благодаря Stray приюты для бездомных кошек получили десятки тысяч долларов
Bethesda сообщает, что дата выхода Starfield будет объявлена «очень скоро»
Разработчики Crime Boss Rockay City рассказали подробности криминального шутера от первого лица
|
Кино и сериалы
Внучка Чарли Чаплина исполнит роль злодейки в «Аватаре 3»
|
Скриншоты
Сербский фотохудожник делает невероятные скриншоты The Witcher 3
Познакомьтесь с «Наташей» — еще одна очаровательная роботесса в Atomic Heart
Стримерша Amouranth создала опрос среди фанатов, «она или PS5/ПК», и результат оказался не тем, чего ожидала
|
Софт
Выпущена демоверсия Unreal Engine 5. 1 Dune Desert Landscape, которая доводит NVIDIA RTX 4090 до предела
|
Скриншоты
Открытый мир, роботы и экшен на новых скриншотах Atomic Heart
|
Кино и сериалы
«Мышей-рокеров с Марса» возродят в виде мультсериала и игрушек
|
Трейлеры
10 минут нового геймплея Atomic Heart от GameSpot
|
Кино и сериалы
Итальянский музей кино наградил Кевина Спейси за его достижения, а он в ответ поблагодарил их за смелость
Оптимизация содержимого карт для улучшения производительности—Справка
- Установки данных
- Оптимизация слоев, растров и компоновок
- Оптимизация карт, которые будут обслуживаться в ArcGIS for Server
Для улучшения производительности в ArcMap можно оптимизировать настройки ваших данных и способы их использования. На быстроедйствие влияет множество факторов, включая формат источника данных, местоположение данных и свойства, установленные вами для слоёв, фреймов данных и компоновок. Ниже приведено несколько рекомендаций для поддержания производительности при настройке установок данных и работе с содержимым карты.
Установки данных
Выбор формата, в котором хранить данные, заключается в нахождении баланса между многими аспектами, к ним относят потребности вашей организации или пользователей, назначение данных, размер данных, требования к анализу или ведению данных и т.д.. Однако, если говорить о скорости, шейп-файлы являются, в общем, самыми быстрыми, за ними следуют персональные базы геоданных, а затем — файловые базы геоданных. Для оптимизации производительности карты, данные карты должны находится локально на компьютере, который используется для ее отображения, а не на удаленной машине. Для карт, которые обычно отображают относительно малые области больших наборов данных, обслуживание данных через ArcSDE будет давать значительные преимущества в производительности по сравнению с хранением этих же данных в файлах.
Избегайте использования персональных баз геоданных в ситуациях, когда необходим многопользовательский доступ или обслуживание карт, так как этот формат не предназначен для таких целей.
Вот некоторые дополнительные факторы, которые учитываются при настройке ваших данных:
- Хранение в одной и той же проекции – По возможности храните все данные в одной проекции и используйте её же для фрейма данных при работе в ArcMap. Об этом важно помнить при редактировании и создании данных, которые будут обслуживаться. Если все слои находятся в одной проекции, можно избежать проблем производительности, вызываемых проецированием на лету.
- Работа с соединением и связыванием данных – Данные из присоединенных полей, доступных через соединения и связи, можно использовать для назначения символов и надписывания объектов, выполнения запросов и множества других операций. Однако доступ к данным через соединения и связи ухудшает производительность. Более подробно об оптимизации соединений таблиц см. Основы соединения таблиц. В дополнение вы можете экспортировать эти данные в новые классы объектов, которые содержат связанную или соединенную информацию.
- Использование атрибутивных или пространственных индексов – Если источник данных позволяет, индексируйте любые поля, используемые для выполнения запросов или построения изображения. Индексы специфичны для каждого формата данных. Более подробно см. в разделах Модифицирование индексов в шейп-файлах путем добавления пространственного индекса и Настройка пространственного индекса. Краткий обзор (базы геоданных). Среда геообработки также предоставляет инструмент для создания атрибутивных индексов: инструмент Добавить атрибутивный индекс (Add_Attribute_Index).
- Упрощение данных – Используйте упрощенные или генерализованные версии слоев при отображении в меньших масштабах. Например, подробная карта береговых линий мира может медленнее отрисовываться в полном масштабе. Если слой упрощен, чтобы содержать меньшее количество вершин и линейных сегментов, он будет отрисовываться в мелком масштабе гораздо быстрее, не намного отличаясь по внешнему виду. К тому же упрощенные данные могут увеличить производительность при выполнении запросов и операций идентификации.
Оптимизация слоев, растров и компоновок
Один из первых и самых простых шагов – посмотреть на свою карту и удалить неиспользуемые слои и фреймы данных. Затем, посмотрев на карту в виде данных и в виде компоновки, убедиться, что в документе карты нет фреймов данных и слоев, никак не связанных с целью карты. Дополнительно, в виде компоновки просмотреть элементы карты и удалить любые ненужные из них.
После этого можно рассмотреть дополнительные факторы для улучшения производительности, приведенные ниже. Более подробно о символах и производительности см. Оптимизация символов карт для улучшения производительности.
- Используйте слои базовой карты для оптимизации производительности отрисовки. Более подробно см. Работа со слоями базовой карты.
- Автоматически скрывайте определенные слои и объекты – Наилучшие способы оптимизации отрисовки слоев: показывать их только в соответствующих масштабах и применять атрибутивный запрос, чтобы избежать отображения ненужных пространственных объектов.
Если нет необходимости показывать определенный слой в определенном масштабе карты, включите зависимость отображения от масштаба. Например, при уменьшении изображения границы страны можно применить масштабно-зависимое отображение для подробного слоя городского транспорта, для того чтобы при этом он отключался автоматически. Можно показывать подробные слои только при крупных масштабах. Если же такой слой необходимо отобразить в меньшем масштабе, используйте более простые символы для ускорения прорисовки. Более подробно о том, как задать масштабно-зависимое отображение, см. Отображение слоев в определенных масштабах.
Определяющий запрос может играть роль фильтра для ограничения объема данных на карте. Например в случае, когда вы создаете карту штата, а класс пространственных объектов содержит данные на всю страну, можно применить определяющий запрос для отображения только тех объектов, которые попадают в пределы границ штата. Более подробно о том, как использовать определяющие запросы см. Отображение поднабора пространственных объектов в слое.
- Построение локального кэша данных карты – При работе с данными, хранящимися в базе геоданных или берущимися с сервиса пространственных объектов ArcIMS, построение кэша объекта ArcMap часто увеличивает скорость общих картографических задач. Кэш объекта позволяет временно хранить пространственные объекты в текущем изображении карты в ArcMap в локальной памяти вашего компьютера. Так как возврат объектов из локальной памяти является быстрейшей операцией, использование кэша объектов часто приводит к улучшению производительности. Некоторые виды действий часто получают преимущество при использовании кэша объектов, к ним относятся отображение больших или сложных наборов данных, надписывание, редактирование, выборка объектов, использование одних и тех же объектов в нескольких слоях на карте, показ объектов с использованием определяющего запроса. Более подробно о кэше объекта и его использовании см. Работа с кэшем объекта.
- Отображение растров – Для увеличения скорости отображения растров можно использовать несколько методик, например поддерживать качество отображения при низком разрешении, насколько это возможно, использовать соответствующие методы пересчета и отображать растры в их исходной проекции, а не проецировать их на лету. Кроме того, требуется построить пирамидные слои для растра. Пирамиды могут ускорить отображение растровых данных, возвращая только необходимые для отображения данные определенного разрешения.
О других способах улучшения производительности при работе с растрами см. Улучшение качества отображения растровых данных.
- Улучшение производительности в виде компоновки – В виде компоновки обратите внимание на рамки фреймов данных. Использование скругленных углов, фона и теней ухудшит производительность. Устранение этих эффектов и использование этих свойств для прямых углов может увеличить производительность отображения фреймов данных в виде компоновки. Для того чтобы изменить эти свойства, щелкните на фрейме данных правой кнопкой, выберите Свойства (Properties) и нажмите на вкладку Рамка (Frame).
Оптимизация карт, которые будут обслуживаться в ArcGIS for Server
Рекомендации для оптимизированных карт также дают преимущества производительности для создания карт, которые будут обслуживаться в ArcGIS for Server. К тому же, существует несколько рекомендаций специально для подобных карт. Больше подсказок см. в разделе Рекомендации по созданию карт.
При создании карт для сервисов, разрабатывайте их для целевой аудитории. Используйте подходящие слои и символы, и не включайте в содержание что-либо, что в данном приложении не требуется для этой аудитории. Удаляйте любые фреймы данных и слои карты, которые не нужны для целевого приложения. Сделайте видимыми по умолчанию только несколько слоев, потом пользователи сами смогут включить необходимые им слои.
Использование кэшированного картографического сервиса – это всегда самый быстрый способ обслуживания сервисов, так как изображение карты строится только в момент создания кэша, но кэшированные карты не всегда подходят для динамических или изменяющихся данных. Если кэшированные карты не подходят для работы, следуйте указаниям из данного раздела справки, чтобы улучшить производительность при подготовке документов динамических карт и доставке их при помощи картографического сервиса.
Отзыв по этому разделу?
sysctl — ArchWiki
sysctl — это инструмент для проверки и изменения параметров ядра во время выполнения. sysctl реализован в procfs, файловой системе виртуального процесса по адресу /proc/
.
Установка
Пакет procps-ng уже должен быть установлен, так как он зависит от базового метапакета.
Конфигурация
Примечание: Начиная с версий 207 и 21x, systemd применяет только настройки из /etc/sysctl.d/*.conf
и /usr/lib/sysctl.d/*.conf
. Если вы настроили /etc/sysctl.conf
, вам нужно переименовать его как /etc/sysctl.d/99-sysctl.conf
. Если бы у вас был, например. /etc/sysctl.d/foo
, вам нужно переименовать его в /etc/sysctl.d/foo.conf
.
Файл предварительной загрузки/конфигурации sysctl можно создать по адресу /etc/sysctl.d/99-sysctl.conf
. Для systemd /etc/sysctl.d/
и /usr/lib/sysctl.d/
являются вставными каталогами для параметров sysctl ядра. Именование и исходный каталог определяют порядок обработки, что важно, поскольку последний обработанный параметр может переопределить более ранние. Например, параметры в /usr/lib/sysctl.d/50-default.conf
будет переопределен равными параметрами в /etc/sysctl.d/50-default.conf
и любой файл конфигурации, обработанный позже из обоих каталогов.
Чтобы вручную загрузить все файлы конфигурации, выполните:
# sysctl --система
, который также выведет примененную иерархию. Один файл параметров также можно загрузить явно с помощью:
# sysctl --load= имя_файла.conf
Дополнительные сведения см. в новых файлах конфигурации и, в частности, в sysctl.d(5).
Доступны параметры, перечисленные в /proc/sys/
. Например, параметр kernel.sysrq
ссылается на файл /proc/sys/kernel/sysrq
в файловой системе. Команда sysctl --all
может использоваться для отображения всех доступных на данный момент значений.
Примечание: Если у вас установлена документация ядра (linux-docs), вы можете найти подробную информацию о настройках sysctl в /usr/lib/modules/$(uname -r)/build/Documentation/admin-guide /sysctl/
. Онлайн-версия упоминается в разделе # См. также этой статьи. Настоятельно рекомендуется прочитать их перед изменением настроек sysctl.
Настройки можно изменить с помощью файловых операций или с помощью утилиты sysctl
. Например, чтобы временно включить волшебный ключ SysRq:
# sysctl ядро.sysrq=1
или:
# эхо "1" > /proc/sys/kernel/sysrq
Подробную информацию о kernel.sysrq 9 см. в документации по ядру Linux.0004 .
Чтобы сохранить изменения между перезагрузками, добавьте или измените соответствующие строки в /etc/sysctl. d/99-sysctl.conf
или другой применимый файл параметров в /etc/sysctl.d/
.
Совет: Некоторые параметры, которые могут быть применены, могут зависеть от модулей ядра, которые, в свою очередь, могут быть не загружены. Например, параметры в /proc/sys/net/bridge/*
зависят от модуля br_netfilter
. Если он не загружен во время выполнения (или после перезагрузки), то будет молча не применять. См. Модули ядра.
Безопасность
См. также Безопасность#Усиление защиты ядра, а также остальную часть этой статьи.
Сеть
Повышение производительности
Увеличение размера очереди приема.
Принятые кадры будут сохраняться в этой очереди после их взятия из кольцевого буфера на сетевой карте.
Увеличение этого значения для высокоскоростных карт может помочь предотвратить потерю пакетов:
net.core.netdev_max_backlog = 16384
Примечание: В приложениях реального времени, таких как SIP-маршрутизаторы, для этой опции требуется высокоскоростной процессор, иначе данные в очереди будут устаревшими.
Увеличить максимальное количество подключений
Верхний предел количества подключений, которое может принять ядро (по умолчанию 128):
net.core.somaxconn = 8192
Примечание. В ядре 5.4 значение по умолчанию повышено до 4096.[1]
Предупреждение: Увеличение этого значения может повысить производительность только на высоконагруженных серверах и может привести к снижению скорости обработки (например, блокирующий сервер с одним потоком) или недостаточному количеству рабочих потоков/процессов [2].
Увеличьте объем памяти, выделенной для сетевых интерфейсов
Эта статья или раздел нуждается в дополнении.
Причина: Объясните, каковы единицы измерения для каждой опции (байты или килобайты или страницы памяти?) (Обсудить в Talk:Sysctl)
Фактическая точность этой статьи или раздела оспаривается.
Причина: Этот раздел, кажется, мотивирован сообщением в блоге Cloudflare, но настроенный профиль Red Hat предлагает еще меньшие значения и утверждает, что «это кажется необходимым только на скоростях 40Gb». Следовательно, эти настройки не кажутся полезными для обычного оборудования. (Обсудить в разговоре:Sysctl)
По умолчанию сетевой стек Linux не настроен для высокоскоростной передачи больших файлов по каналам WAN (т. е. для обработки большего количества сетевых пакетов), и установка правильных значений может сэкономить ресурсы памяти:
сеть.core.rmem_default = 1048576 net.core.rmem_max = 16777216 net.core.wmem_default = 1048576 net.core.wmem_max = 16777216 net.core.optmem_max = 65536 net.ipv4.tcp_rmem = 4096 1048576 2097152 net.ipv4.tcp_wmem = 4096 65536 16777216
Также возможно увеличение по умолчанию 4096
Ограничения UDP:
сеть.ipv4.udp_rmem_min = 8192 net.ipv4.udp_wmem_min = 8192
Дополнительную информацию и рекомендуемые значения см. в следующих источниках:
- http://www.nateware.com/linux-network-tuning-for-2013.html
- https://blog.cloudflare.com/the-story-of-one-latency-spike/
Включить быстрое открытие TCP
Эта статья или раздел нуждается в дополнении.
Причина: Упомяните опцию «разрешить всем прослушивателям поддерживать Fast Open по умолчанию без явной опции сокета TCP_FASTOPEN», т. е. значение 1027
(0x1+0x2+0x400). (Обсудите в разговоре: Sysctl#TCP Fast Open)
TCP Fast Open — это расширение протокола управления передачей (TCP), которое помогает уменьшить задержку в сети, позволяя обмениваться данными во время исходного TCP SYN отправителя [3]. Использование значения 3
вместо значения по умолчанию 1
разрешает TCP Fast Open как для входящих, так и для исходящих соединений:
сеть.ipv4.tcp_fastopen = 3
Настройка обработки ожидающих соединений
tcp_max_syn_backlog
— максимальная длина очереди ожидающих соединений «Ожидание подтверждения».
В случае DOS-атаки synflood эта очередь может заполниться довольно быстро, и в этот момент сработают файлы cookie TCP SYN, позволяя вашей системе продолжать реагировать на законный трафик и позволяя вам получить доступ к блокировке вредоносных IP-адресов.
Если сервер страдает от перегрузок в часы пик, вы можете немного увеличить это значение:
net.ipv4.tcp_max_syn_backlog = 8192
tcp_max_tw_buckets
— максимальное количество сокетов в состоянии TIME_WAIT.
После достижения этого числа система начнет уничтожать сокет, находящийся в этом состоянии.
Увеличьте это значение для предотвращения простых DOS-атак:
net.ipv4.tcp_max_tw_buckets = 2000000
tcp_tw_reuse
устанавливает, должен ли TCP повторно использовать существующее соединение в состоянии TIME-WAIT для нового исходящего соединения, если новая временная метка строго больше самой последней временной метки, записанной для предыдущего соединения.
Это помогает избежать исчерпания доступных сетевых сокетов:
net.ipv4.tcp_tw_reuse = 1
Укажите, сколько секунд ждать последнего пакета FIN, прежде чем сокет будет принудительно закрыт. Это строгое нарушение спецификации TCP, но оно необходимо для предотвращения атак типа «отказ в обслуживании». В Linux 2.2 значение по умолчанию было 180 [4]:
net.ipv4.tcp_fin_timeout = 10
tcp_slow_start_after_idle
устанавливает, должен ли TCP запускаться с размером окна по умолчанию только для новых подключений или также для существующих подключений, которые слишком долго простаивали.
Этот параметр убивает производительность постоянного одиночного соединения и может быть отключен:
net.ipv4.tcp_slow_start_after_idle = 0
Изменить параметры проверки активности TCP
Проверка активности TCP — это механизм TCP-соединений, который помогает определить, перестал ли отвечать другой конец. TCP будет посылать тест проверки активности, который содержит нулевые данные, партнеру сети несколько раз после периода простоя. Если одноранговый узел не отвечает, сокет будет автоматически закрыт. По умолчанию процесс проверки активности TCP ожидает в течение двух часов (7200 секунд) активности сокета перед отправкой первой проверки активности, а затем повторно отправляет ее каждые 75 секунд. До тех пор, пока связь через сокеты TCP/IP активна, никакие пакеты поддержки активности не нужны.
Примечание: При следующих настройках ваше приложение будет обнаруживать мертвые соединения TCP через 120 секунд (60 с + 10 с + 10 с + 10 с + 10 с + 10 с + 10 с).
net.ipv4.tcp_keepalive_time = 60 net.ipv4.tcp_keepalive_intvl = 10 net.ipv4.tcp_keepalive_probes = 6
Включить зондирование MTU
Чем длиннее максимальный блок передачи (MTU), тем лучше производительность, но хуже надежность.
Это связано с тем, что потерянный пакет означает повторную передачу большего количества данных, а также потому, что многие маршрутизаторы в Интернете не могут доставлять очень длинные пакеты:
сеть.ipv4.tcp_mtu_probing = 1
См. https://blog.cloudflare.com/path-mtu-discovery-in-practice/ для получения дополнительной информации.
Временные метки TCP
Предупреждение: Временные метки TCP защищают от переноса порядковых номеров (на гигабитных скоростях) и расчета времени приема-передачи, реализованного в TCP. Не рекомендуется отключать временные метки TCP, так как это может вызвать угрозу безопасности [5].
Отключение генерации временных меток уменьшит всплески и может повысить производительность в гигабитных сетях:
net.ipv4.tcp_timestamps = 0
Включить BBR
Алгоритм управления перегрузкой BBR может помочь увеличить пропускную способность и снизить задержки для интернет-трафика. Сначала загрузите модуль tcp_bbr
.
Примечание. BBR GitHub говорит: «Это не официальный продукт Google».
net.core.default_qdisc = торт net.ipv4.tcp_congestion_control = bbr
Увеличение диапазона портов Ephemeral
Фактическая точность этой статьи или раздела оспаривается.
Причина: Как это изменение повышает производительность? (Обсудить в разговоре:Sysctl#talk:sysctl#net.ipv4.ip_local_port_range)
Порт Wikipedia:Ephemeral обычно используется протоколом управления передачей (TCP), протоколом пользовательских дейтаграмм (UDP) или протоколом передачи управления потоком ( SCTP) в качестве назначения порта для клиентской части связи клиент-сервер.
сеть.ipv4.ip_local_port_range = 30000 65535
Усиление стека TCP/IP
Ниже указан набор параметров для ужесточения параметров сетевой безопасности ядра для протокола IPv4 и связанных параметров IPv6, если существует эквивалент.
В некоторых случаях, например, при использовании системы в качестве маршрутизатора, другие параметры также могут быть полезны или необходимы.
Защита файлов cookie TCP SYN
Помогает защитить от SYN-флуд-атак. Срабатывает только при достижении net.ipv4.tcp_max_syn_backlog
. Подробнее см., например, [6]. Начиная с Linux 5.10, он установлен по умолчанию.
net.ipv4.tcp_syncookies = 1
TCP rfc1337
Фактическая точность этой статьи или раздела оспаривается.
Причина: Кажется, это не часть стандарта TCP? Описание может быть неточным. [7] (Обсудить в разговоре:Sysctl#net.ipv4.tcp_rfc1337)
Защитить от опасностей, связанных с ожиданием времени ожидания TCP, отбрасывать пакеты RST для сокетов в состоянии ожидания. Широко не поддерживается за пределами Linux, но соответствует RFC:
сеть.ipv4.tcp_rfc1337 = 1
Фильтрация обратного пути
При включении фильтрации обратного пути ядро будет выполнять проверку источника пакетов, полученных со всех интерфейсов на машине. Это может защитить от злоумышленников, которые используют методы подмены IP-адреса для нанесения вреда.
Значение ядра по умолчанию — 0
(без проверки источника), но systemd поставляет /usr/lib/sysctl.d/50-default.conf
, который устанавливает net.ipv4.conf.all.rp_filter
на 2
(свободный режим)[8].
Следующее установит механизм фильтрации обратного пути на значение 1
(строгий режим):
net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1
Связь и поведение net.ipv4.conf.default.*
, net.ipv4.conf. интерфейс .*
и net.ipv4.conf.all.*
объясняется в ip-sysctl. html.
Запись марсианских пакетов
Марсианский пакет — это IP-пакет, в котором указан адрес источника или получателя, зарезервированный для специального использования Управлением по присвоению номеров в Интернете (IANA). Дополнительные сведения см. в разделе Зарезервированные IP-адреса.
Часто марсианский и немаршрутизируемый пакет может быть использован в опасных целях. Регистрация этих пакетов для дальнейшей проверки может быть полезной [9]:
net.ipv4.conf.default.log_martians = 1 net.ipv4.conf.all.log_martians = 1
Примечание: Это может заполнить ваши журналы большим количеством информации, рекомендуется включать это только для тестирования.
Отключить перенаправления ICMP
Фон находится на Что такое перенаправления ICMP? Должны ли они быть заблокированы?
Чтобы отключить прием перенаправления ICMP:
net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net. ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 net.ipv6.conf.all.accept_redirects = 0 net.ipv6.conf.default.accept_redirects = 0
Чтобы отключить отправку перенаправления ICMP при использовании не маршрутизатора:
net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0
Игнорировать эхо-запросы ICMP
Чтобы отключить эхо-запросы ICMP (также известные как ping):
сеть.ipv4.icmp_echo_ignore_all = 1 net.ipv6.icmp.echo_ignore_all = 1
Примечание: Остерегайтесь, это может вызвать проблемы с инструментами мониторинга и/или приложениями, использующими эхо-ответы ICMP.
Другое
Разрешить непривилегированным пользователям создавать сокеты IPPROTO_ICMP
Эта статья или раздел устарели.
Причина: /usr/lib/sysctl.d/50-default.conf
устанавливает net.ipv4.ping_group_range
на 0 2147483647
. (Обсудить в Talk:Sysctl)
Тип сокета IPPROTO_ICMP (icmp(7)) добавляет возможность отправлять сообщения ICMP_ECHO и получать соответствующие сообщения ICMP_ECHOREPLY без необходимости открывать сокет raw(7), операция, для которой требуется возможность CAP_NET_RAW или бит SUID с соответствующим привилегированным владельцем. Эти сообщения ICMP_ECHO отправляются приложением проверки связи, что делает сокет IPPROTO_ICMP также известным как сокет проверки связи в дополнение к сокету ICMP Echo.
ping_group_range
определяет диапазон GID групп, пользователям которых разрешено создавать сокеты IPPROTO_ICMP. Кроме того, владелец возможности CAP_NET_RAW также может создавать сокеты IPPROTO_ICMP. По умолчанию этот диапазон равен 1 0
, что означает, что никто не может создавать сокеты IPPROTO_ICMP, кроме root. Чтобы воспользоваться преимуществами этой настройки, программы, которые в настоящее время используют необработанные сокеты, должны быть перенесены для использования вместо них сокетов IPPROTO_ICMP. Например, QEMU использует IPPROTO_ICMP для SLIRP, также известного как сеть пользовательского режима, поэтому разрешение пользователю, работающему с QEMU, создавать сокеты IPPROTO_ICMP означает, что можно выполнить ping с гостя.
Чтобы разрешить создавать сокеты IPPROTO_ICMP только пользователям, являющимся членами группы с GID 100:
net.ipv4.ping_group_range = 100 100
Чтобы разрешить всем пользователям в системе создавать сокеты IPPROTO_ICMP:
net.ipv4.ping_group_range = 0 65535
Виртуальная память
Существует несколько ключевых параметров для настройки работы подсистемы виртуальной памяти ядра Linux и записи грязных данных на диск. Дополнительную информацию см. в официальной документации ядра Linux. Например:
-
vm.dirty_ratio = 10
- Содержит в процентах от общей доступной памяти, содержащей свободные страницы и восстанавливаемые страницы, количество страниц, с которых процесс, генерирующий записи на диск, сам начнет записывать грязные данные.
-
vm.dirty_background_ratio = 5
- Содержит в процентах от общей доступной памяти, содержащей свободные страницы и восстанавливаемые страницы, количество страниц, на которых потоки фоновой очистки ядра начнут записывать грязные данные.
Как отмечено в комментариях к параметрам, при установке этих значений необходимо учитывать общий объем оперативной памяти. Например, упрощая, беря установленную системную оперативную память вместо доступной памяти:
Предупреждение:
- Более высокие значения соотношения могут повысить производительность, а также увеличить риск потери данных.
- Установка этого значения на
0
может привести к увеличению задержки на дисках и всплескам.
См. https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/ для получения дополнительной информации.
- Все согласны с тем, что установка
vm. dirty_ratio
на 10 % ОЗУ является разумным значением, если ОЗУ составляет, скажем, 1 ГБ (так что 10 % — это 100 МБ). Но если у машины гораздо больше оперативной памяти, скажем, 16 ГБ (10% — это 1,6 ГБ), процент может быть непропорциональным, поскольку на вращающиеся диски приходится несколько секунд обратной записи. Более вменяемым значением в данном случае может быть3
(3% от 16 Гб это примерно 491 Мб). - Точно так же установка
vm.dirty_background_ratio
на5
может подойти для небольших значений памяти, но опять же, учитывайте и соответствующим образом корректируйте объем ОЗУ в конкретной системе.
Кэш VFS
Уменьшение значения параметра кэша виртуальной файловой системы (VFS) может улучшить реакцию системы:
-
vm.vfs_cache_pressure = 50
- Это значение управляет тенденцией ядра освобождать память, которая используется для кэширования объектов каталогов и inode (кэш VFS). Уменьшение его значения по умолчанию, равного 100, делает ядро менее склонным к восстановлению кэша VFS (не устанавливайте его равным 0, это может привести к нехватке памяти).
MDADM
См. RAID#Изменение ограничений скорости синхронизации.
Поиск и устранение неисправностей
Небольшие периодические зависания системы
Установите для грязных байтов достаточно маленькое значение (например, 4M):
vm.dirty_background_bytes = 4194304 вм.грязные_байты = 4194304
Примечание: Параметры dirty_background_bytes
и dirty_bytes
являются аналогами dirty_background_ratio
и dirty_ratio
(как показано в #Virtual memory). Одновременно может быть указан только один из параметров.
См. также
- sysctl(8) и sysctl.conf(5)
- Документация по ядру Linux для /proc/sys/
- Документация ядра: IP Sysctl
- Сетевые параметры ядра для sysctl
- sysctl-explorer. net — инициатива по облегчению доступа к справочной документации Linux по sysctl
- Отключение исходной маршрутизации — портал для клиентов Red Hat
- Справочник SUSE по функциям безопасности в ядре
.
Ext4 — ArchWiki
Из Ext4 - Новички ядра Linux:
- Ext4 — это эволюция самой используемой файловой системы Linux, Ext3. Во многих отношениях Ext4 является более глубоким улучшением по сравнению с Ext3, чем Ext3 по сравнению с Ext2. Ext3 был в основном предназначен для добавления журналирования в Ext2, но Ext4 изменяет важные структуры данных файловой системы, такие как те, которые предназначены для хранения файловых данных. Результатом является файловая система с улучшенным дизайном, лучшей производительностью, надежностью и функциями.
Создать новую файловую систему ext4
Установить e2fsprogs.
Для форматирования раздела выполните:
# mkfs.ext4 /dev/ раздел
Совет:
- Дополнительные параметры см. в mke2fs(8); отредактируйте
/etc/mke2fs.conf
, чтобы просмотреть/настроить параметры по умолчанию. - Если поддерживается, вы можете включить контрольные суммы метаданных.
Соотношение байтов на инод
Из mke2fs(8):
- mke2fs создает inode для каждых байт на индексный дескриптор байт свободного места на диске. Чем больше соотношение байт на инод , тем меньше инодов будет создано.
Для создания нового файла, каталога, символической ссылки и т. д. требуется как минимум один свободный индексный дескриптор. Если количество инодов слишком мало, файл не может быть создан в файловой системе, даже если в ней еще осталось место.
Поскольку невозможно изменить ни соотношение байтов на индексный дескриптор, ни количество индексных дескрипторов после создания файловой системы, mkfs.ext4
по умолчанию использует довольно низкое соотношение: один inode каждые 16384 байта (16 КиБ), чтобы избежать этой ситуации.
Однако для разделов с размером в сотни или тысячи ГБ и средним размером файла в мегабайтах это обычно приводит к слишком большому количеству индексов, поскольку количество создаваемых файлов никогда не достигает количества индексов.
Это приводит к пустой трате места на диске, поскольку каждый из этих неиспользуемых инодов занимает 256 байт в файловой системе (это также установлено в /etc/mke2fs.conf
, но не следует изменять). 256 * несколько миллионов = довольно много гигабайт потрачено впустую в неиспользуемых инодах.
Эту ситуацию можно оценить, сравнив цифры Use%
и IUse%
, предоставленные df
и df -i
:
$ df -h /home
Размер файловой системы Доступен Use% Установлен на /dev/mapper/lvm-home 115G 56G 59G 49% /home
$ дф-привет /дом
Иноды файловой системы IUsed IFree IUse% Установлено на /dev/mapper/lvm-home 1.8M 1. 1K 1.8M 1% /home
Чтобы указать другое соотношение байтов на индексный дескриптор, вы можете использовать параметр -T тип использования
, который намекает на ожидаемое использование файловой системы с использованием типов, определенных в /etc/mke2fs.conf
. Среди этих типов более крупные largefile
и largefile4
, которые предлагают более релевантные соотношения: один индексный дескриптор на каждые 1 МБ и 4 МБ соответственно. Его можно использовать как таковой:
# mkfs.ext4 -T largefile /dev/ устройство
Соотношение байтов на индексный дескриптор также можно установить напрямую с помощью параметра -i
: , например. используйте -i 2097152
для соотношения 2 МБ и -i 6291456
для соотношения 6 МБ.
Совет: И наоборот, если вы настраиваете раздел, предназначенный для размещения миллионов небольших файлов, таких как сообщения электронной почты или элементы группы новостей, вы можете использовать меньшие значения типа использования , такие как новости
(один индексный дескриптор на каждые 4096 байт) или small
(то же самое плюс меньший индексный дескриптор и размеры блоков).
Предупреждение: Если вы активно используете символические ссылки, следите за тем, чтобы количество инодов было достаточно высоким с низким соотношением байтов на инод, потому что, не занимая больше места, каждая новая символическая ссылка потребляет один новый индекс и поэтому в файловой системе они могут быстро закончиться.
Зарезервированные блоки
По умолчанию 5% блоков файловой системы будут зарезервированы для суперпользователя во избежание фрагментации и « позволяют демонам, принадлежащим root, продолжать работать правильно после того, как непривилегированным процессам будет запрещена запись в файловую систему "(из mke2fs(8)).
Для современных дисков большой емкости это значение больше необходимого, если раздел используется как долговременный архив или не имеет решающего значения для системных операций (например, /home
). См. это электронное письмо, чтобы узнать мнение разработчика ext4 Теда Цо о зарезервированных блоках, и этот ответ суперпользователя, чтобы получить общую информацию по этой теме.
Обычно безопасно уменьшить процент зарезервированных блоков, чтобы освободить место на диске, если раздел:
- Очень большой (например, > 50G)
- Используется в качестве долговременного архива, т.е. там, где файлы не будут удаляться и создаваться очень часто.
Чтобы полностью предотвратить резервирование блоков при создании файловой системы, используйте:
# mkfs.ext4 -m 0 /dev/ устройство
Чтобы впоследствии изменить его на 1%, используйте:
# tune2fs -m 1 /dev/ устройство
Чтобы установить количество зарезервированного блочного пространства в абсолютном размере в гигабайтах, используйте
-r
:# tune2fs -r $(( ngigs * 1024**3 / размер блока )) /dev/ устройство
размер блока
— размер блока файловой системы в байтах. Это почти всегда 4096, но вы можете проверить, чтобы быть уверенным:
93 / размер блока') /dev/ устройствоЭти команды можно применять к смонтированным в данный момент файловым системам, при этом изменения вступают в силу немедленно. Вы можете использовать findmnt(8), чтобы найти имя устройства:
# tune2fs -m 1 "$(findmnt -no SOURCE /the/mount/point )"
Чтобы запросить текущее количество зарезервированных блоков:
# tune2fs -l /dev/mapper/proxima-root | grep 'Количество зарезервированных блоков:'
Количество зарезервированных блоков: 2975334
Это количество блоков, поэтому его нужно умножить на размер блока файловой системы, чтобы получить количество байтов или гигабайт:
2975334 * 4096 / 1024**3 = 11,34 ГиБ
.Миграция с ext2/ext3 на ext4
Монтирование разделов ext2/ext3 как ext4 без преобразования
Обоснование
Компромисс между полным преобразованием в ext4 и просто сохранением ext2/ext3 заключается в монтировании разделов как ext4.
Плюсы:
- Совместимость (файловая система может продолжать монтироваться как ext3) — это позволяет пользователям по-прежнему читать файловую систему из других операционных систем без поддержки ext4 (например, Windows с драйверами ext2/ext3)
- Улучшена производительность (хотя и не так сильно, как у полностью преобразованного раздела ext4). [1] [2]
Минусы:
- Используется меньше функций ext4 (только те, которые не изменяют формат диска, такие как многоблочное выделение и отложенное выделение)
Примечание: За исключением относительной новизны ext4 (что может рассматриваться как риск) , у этой методики нет серьезных недостатков .
Процедура
- Отредактируйте
/etc/fstab
и измените «тип» с ext2/ext3 на ext4 для всех разделов, которые вы хотите смонтировать как ext4. - Перемонтируйте затронутые разделы.
Преобразование разделов ext2/ext3 в ext4
Обоснование
Чтобы воспользоваться преимуществами ext4, необходимо выполнить необратимый процесс преобразования.
Плюсы:
- Улучшенная производительность и новые функции.[3] [4]
Минусы:
- Разделы, содержащие в основном статические файлы, такие как раздел
/boot
, могут не получить преимуществ от новых функций. Кроме того, добавление журнала (которое подразумевается при перемещении раздела ext2 в ext3/4) всегда влечет за собой снижение производительности. - Необратимый (разделы ext4 не могут быть «понижены» до ext2/ext3. Однако они обратно совместимы до тех пор, пока не будут включены экстенты и другие уникальные параметры)
Процедура
Эти инструкции были адаптированы из документации ядра и потока BBS.
Предупреждение:
- Если вы конвертируете корневую файловую систему системы, убедитесь, что «резервный» initramfs доступен при перезагрузке. В качестве альтернативы добавьте
ext4
в соответствии с Mkinitcpio#MODULES и перегенерируйте initramfs перед запуском. - Если вы решили преобразовать отдельный раздел
/boot
, убедитесь, что загрузчик поддерживает загрузку с ext4.
В следующих шагах
/dev/sdxX
обозначает путь к разделу, который нужно преобразовать, например/dev/sda1
.- Создайте резервную копию всех данных на всех разделах ext3, которые необходимо преобразовать в ext4. Полезным пакетом, особенно для корневых разделов, является clonezilla.
- Отредактируйте
/etc/fstab
и измените «тип» с ext3 на ext4 для всех разделов, которые должны быть преобразованы в ext4. - Загрузите живой носитель (при необходимости). Процесс преобразования с помощью e2fsprogs необходимо выполнять, когда диск не смонтирован. При преобразовании корневого раздела самый простой способ добиться этого — загрузиться с другого живого носителя.
- Убедитесь, что раздел смонтирован , а не
- Если вы хотите преобразовать раздел ext2, первым шагом преобразования является добавление журнала, запустив
tune2fs -j /dev/sdxX
от имени пользователя root; сделать его разделом ext3. - Запустите
tune2fs -O extension,uninit_bg,dir_index /dev/sdxX
от имени пользователя root. Эта команда преобразует файловую систему ext3 в ext4 (необратимо). - Запустите
fsck -f /dev/sdxX
от имени пользователя root.- Этот шаг необходим, иначе файловая система будет нечитаемым . Этот запуск fsck необходим для возврата файловой системы в согласованное состояние. Он найдет ошибки контрольной суммы в дескрипторах групп — это ожидаемо. Параметр
-f
запрашивает fsck принудительную проверку, даже если файловая система кажется чистой. Параметр-p
может использоваться сверху для «автоматического исправления» (в противном случае пользователю будет предложено ввести данные для каждой ошибки).
- Этот шаг необходим, иначе файловая система будет нечитаемым . Этот запуск fsck необходим для возврата файловой системы в согласованное состояние. Он найдет ошибки контрольной суммы в дескрипторах групп — это ожидаемо. Параметр
- Рекомендуется: смонтировать раздел и запустить
e4defrag -c -v /dev/sdxX
от имени пользователя root.- Несмотря на то, что теперь файловая система преобразована в ext4, все файлы, которые были записаны до преобразования, еще не используют преимущества параметра экстента ext4, который улучшит производительность больших файлов и уменьшит фрагментацию и время проверки файловой системы. Чтобы в полной мере воспользоваться преимуществами ext4, все файлы должны быть перезаписаны на диск. Используйте e4defrag , чтобы решить эту проблему.
- Перезагрузка
Повышение производительности
E4rat
E4rat — это приложение предварительной загрузки, разработанное для файловой системы ext4. Он отслеживает файлы, открытые во время загрузки, оптимизирует их размещение на разделе для сокращения времени доступа и предварительно загружает их в самом начале процесса загрузки. E4rat не предлагает улучшений для SSD, время доступа которых незначительно по сравнению с жесткими дисками.
Отключение обновления времени доступа
Файловая система ext4 записывает информацию о том, когда к файлу последний раз обращались, и есть затраты, связанные с ее записью. С
noatime
, метки времени доступа к файловой системе не обновляются./etc/fstab
/dev/sda5 / ext4 по умолчанию, noatime 0 1
При этом прерываются приложения, зависящие от времени доступа. Возможные решения см. в параметрах fstab#atime.
Увеличение интервала фиксации
Интервал синхронизации для данных и метаданных можно увеличить, указав более высокую временную задержку для параметра
фиксации
.Значение по умолчанию 5 секунд означает, что при отключении питания будет потеряно столько же, сколько последние 5 секунд работы.
Он принудительно выполняет полную синхронизацию всех данных/журналов на физическом носителе каждые 5 секунд. Однако файловая система не будет повреждена благодаря ведению журнала.
Следующий fstab иллюстрирует использованиезафиксировать
:/etc/fstab
/dev/sda5 / ext4 defaults,noatime, commit=60 0 1
Отключение барьеров
Предупреждение: Отключение барьеров для дисков без резервного питания и кэш-памяти не рекомендуется привести к серьезному повреждению файловой системы и потере данных.
Ext4 по умолчанию включает барьеры записи. Это гарантирует, что метаданные файловой системы будут правильно записаны и упорядочены на диске, даже если кэши записи теряют мощность. Это связано с затратами на производительность, особенно для приложений, использующих fsync сильно или создает и удаляет много мелких файлов. Для дисков с кэшем записи, так или иначе питаемым от батареи, отключение барьеров может безопасно повысить производительность.
Чтобы отключить барьеры, добавьте параметр
барьер=0
в нужную файловую систему. Например:/etc/fstab
/dev/sda5 / ext4 noatime, барьер=0 0 1
Отключение ведения журнала
Предупреждение: Использование файловой системы без ведения журнала может привести к потере данных в случае внезапного отключения питания, например сбой или блокировка ядра. 9has_journal" /dev/sdXN
Используйте внешний журнал для оптимизации производительности
Эта статья или раздел нуждается в улучшении языка, синтаксиса вики или стиля. См. Help:Style для справки.
Причина: Сложно читать, требует исправления стиля. (Обсудить в Talk:Ext4)
Для тех, кто беспокоится как о целостности данных, так и о производительности, ведение журнала можно значительно ускорить с помощью параметра монтирования
journal_async_commit
. Обратите внимание, что он не работает со сбалансированным значением по умолчанию 9.0003 data=ordered , поэтому это рекомендуется только в том случае, если файловая система уже осторожно используетdata=journal
.Затем вы можете отформатировать выделенное устройство для ведения журнала с помощью
mke2fs -O journal_dev /dev/journal_device
. Используйтеtune2fs -J device=/dev/journal_device /dev/ext4_fs
, чтобы назначить журнал существующему устройству, или заменитеtune2fs
наmkfs.ext4
, если вы создаете новую файловую систему.Советы и рекомендации
Эта статья или раздел нуждается в дополнении.
Причина: Документ e2scrub(8) и
e2scrub_all.timer
. (Обсудите в Talk:Ext4)Использование шифрования на основе файлов
Начиная с Linux 4.1, ext4 изначально поддерживает шифрование файлов, см. статью fscrypt. Шифрование применяется на уровне каталогов, и разные каталоги могут использовать разные ключи шифрования. Это отличается как от dm-crypt, который является шифрованием на уровне блочного устройства, так и от eCryptfs, который представляет собой многоуровневую криптографическую файловую систему.
Включение контрольных сумм метаданных в существующих файловых системах
Если файловая система создана с помощью e2fsprogs 1.43 (2016) или более поздней версии, контрольные суммы метаданных включены по умолчанию. Существующие файловые системы могут быть преобразованы для включения поддержки контрольной суммы метаданных.
Если ЦП поддерживает SSE 4.2, убедитесь, что модуль ядра
crc32c_intel
загружен, чтобы активировать алгоритм CRC32C с аппаратным ускорением [5]. Если нет, загрузите вместо него модульcrc32c_generic
.Чтобы узнать больше о контрольных суммах метаданных, см. ext4 wiki.
Совет: Используйте
dumpe2fs
для проверки функций, включенных в файловой системе:# dumpe2fs -h /dev/путь/к/диску
Примечание: Файловая система не должна быть смонтирована.
Сначала необходимо проверить и оптимизировать раздел с помощью
e2fsck
:# e2fsck -Df /dev/путь/к/диску
Преобразование файловой системы в 64-битную:
# resize2fs -b /dev/путь/к/диску
Наконец включить поддержку контрольных сумм:
# tune2fs -O metadata_csum /dev/путь/к/диску
Для проверки:
# dumpe2fs -h /dev/путь/к/диску | Функции grep:
Функции файловой системы: has_journal ext_attr resize_inode dir_index тип файла экстент 64-битный flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Включение fast_commit в существующих файловых системах
Начиная с ядра 5.