Временно отключить swap на рабочей базе данных?

Вопрос или проблема

Если мне нужно отключить swap на сервере Linux с базой данных MySQL, чтобы я мог увеличить размер swap, что произойдет с базой данных?

База данных использует все 8 ГБ swap. Какой был бы лучший способ увеличить swap базы данных до 16 ГБ?

У нее 16 ГБ оперативной памяти и swappiness 1, она использовала все 8 ГБ swap, разве она не использует так же 16 ГБ swap?

Нет единого решения для добавления swap, и это зависит от вашей цели. Пока вы отключаете swap перед изменением размера базового блокового устройства, вы не потеряете данные (но можете аварийно завершить работу системы, если у вас недостаточно памяти).

Вы можете иметь более одного файла/устройства swap, поэтому альтернативным вариантом было бы просто добавить второе swap-устройство, что можно сделать без удаления существующего swap. Вы также можете создать новый временный swap, включить его, затем отключить существующий swap, изменить его размер, включить его и отключить временный swap. Это сильно повлияет на производительность, пока процесс идет, но может быть выполнено без перерыва.

Использование swap в MySQL ужасно для производительности. Лучше уменьшить настройки, чтобы MySQL вовсе не использовал swap. Пожалуйста, предоставьте содержимое my.cnf; проблемы могут быть очевидны там.

MySQL предполагает, что у него есть различные элементы, доступные в оперативной памяти, поэтому он ничего не думает о сканировании, скажем, “кеша таблицы” или “буферного пула”. Если вы используете swap, это приводит к множеству операций ввода-вывода.

Чтобы прямо ответить на вопрос: отключение swap на активной базе данных имеет высокий потенциал сделать MySQL неотзывчивым во время выполнения команды swapoff (говорю по собственному опыту). Если вы рассматриваете это на активной, производственной системе, лучше всего убедиться, что вы делаете это в рамках правильно организованного окна технического обслуживания.

Настройка параметров, связанных с памятью, в my.cnf, как предложили другие, или перенос базы данных на систему с соответствующим объемом оперативной памяти, или модернизация оперативной памяти на существующем хосте предпочтительнее добавления swap.

Ответ или решение

Если вам необходимо временно отключить swap на сервере с базой данных MySQL, работающем на Linux, чтобы увеличить размер swap, следует тщательно оценить возможные последствия и потенциальные риски для производительности базы данных.

Для начала, важно отметить, что ваша система уже активно использует весь доступный swap объемом 8 ГБ, что указывает на то, что система вероятно испытывает нехватку оперативной памяти (RAM) или имеет неэффективно настроенные параметры конфигурации. Учитывая, что ваш сервер имеет 16 ГБ оперативной памяти и swappiness настроен на 1 (что означает, что система будет стараться минимизировать использование swap), можно сделать вывод, что увеличение до 16 ГБ swap не устранит основную проблему, связанную с нехваткой RAM.

Если вы все же решите временно отключить swap для увеличения его размера, будьте готовы к тому, что отключение swap на активной базе данных может сильно повлиять на её производительность и даже привести к её неработоспособности. Это объясняется тем, что MySQL, как правило, предполагает, что у него есть быстрый доступ к данным в оперативной памяти. При отсутствии swap любая нехватка памяти может привести к краху системы. Поэтому эти действия должны обязательно выполняться в рамках согласованного окна технического обслуживания, чтобы избежать потерь данных и минимизировать воздействие на пользователей.

Наилучший способ увеличения размера swap без временной деактивации существующего swap — это добавить дополнительное swap-файл или заменить имеющийся swap файлом или разделом большего размера. Это можно сделать следующим образом:

  1. Создание временного swap-файла: Создайте временный swap-файл, активируйте его, затем деактивируйте старый swap, увеличьте его размер, повторно активируйте и затем удалите временный swap. Этот процесс может сказаться на производительности во время выполнения.

  2. Добавление нового swap файлом/разделом: Просто добавьте новый swap-файл или раздел без удаления существующего. Это увеличит общий доступный объем swap, не отключая текущий swap.

Однако, вместо добавления дополнительного swap, рекомендуется оптимизировать параметры конфигурации в файле my.cnf или рассмотреть возможность увеличения объема оперативной памяти на сервере. Это более предпочтительные решения, так как они помогут избежать чрезмерного использования swap и улучшат общую производительность системы.

Таким образом, в долгосрочной перспективе, лучше инвестировать в расширение оперативной памяти или улучшение конфигураций, чем полагаться на swap, особенно в производственной среде. Это обеспечит более стабильную и быструю работу вашей базы данных MySQL.

Оцените материал
Добавить комментарий

Капча загружается...