Мне нужно увеличить swap на рабочей системе с centos 6.
Я нашел несколько мануалов и вижу себе 2 варианта действий:
- расширить текущий своп-раздел
- создать новый раздел и отметить его как своп.
Что сделать безопаснее в том смысле, чтобы не было угрозе имеющимся данным, чтобы сервер не простаивал?
Увы, однозначно этот вопрос в мануалах не оговаривается.
topcyprus, swap можно создать не на отдельном разделе, а просто в файле.
И это однозначно безопаснее и сервер простаивать не будет wink
P.S. Насколько это будет быстрее/медленнее «обычного» swap'а сказать не могу :o
topcyprus, swap можно создать не на отдельном разделе, а просто в файле.
И это однозначно безопаснее и сервер простаивать не будет wink
P.S. Насколько это будет быстрее/медленнее «обычного» swap'а сказать не могу :o
Спасибо за ответ!
А у меня софтверный рейд на сервере, я так подумал, что вариант с созданием файла хуже, ведь получается, что диск будет синхронизировать этот своп-файл в рейде? Или не стоит беспокоиться?
Lupo Alberto, тут я согласен. Это будет не только безопасно, но и не замедлит систему.
topcyprus написал:
не стоит беспокоиться?
не стоит. Беспокойтесь, когда у вас своп активно используется. Это говорит или о глючных программах, или о нехватки памяти. В нормальном режиме своп практически не используется (в смысле, к нему мало обращений. Да и заполнен он не сильно). Своп потребуется в аварийных режимах. Но там уже не до быстродействия, скорее наоборот - пусть сервак хоть как-то ковыляет.
Lupo Alberto, тут я согласен. Это будет не только безопасно, но и не замедлит систему.
[quote=topcyprus]не стоит беспокоиться?
не стоит. Беспокойтесь, когда у вас своп активно используется. Это говорит или о глючных программах, или о нехватки памяти. В нормальном режиме своп практически не используется (в смысле, к нему мало обращений. Да и заполнен он не сильно). Своп потребуется в аварийных режимах. Но там уже не до быстродействия, скорее наоборот - пусть сервак хоть как-то ковыляет.[/quote]
Спасибо. Ну это экстренная мера, а то сервак зависал несколько раз, кончался своп.
Сейчас увеличил в помощью файла, буду изучать, что там творится. :(
topcyprus, попробуйте обновить программы, которые потребляют много памяти. Конечно не факт что это поможет, но если у вас нет сейчас других вариантов, то остаётся только этот...
PS: а своп любой очень сильно тормозит систему, где бы он не лежал. Потому, не думаю, что вы заметите разницу между свопом в файле и в разделе. Кстати, есть ещё такой вариант - своп на отдельном диске. Может это вам тоже поможет. Во всяком случае тут вероятность потери данных минимальна. (ну если вы только диски не перепутаете :D )
topcyprus, попробуйте обновить программы, которые потребляют много памяти. Конечно не факт что это поможет, но если у вас нет сейчас других вариантов, то остаётся только этот...
PS: а своп любой очень сильно тормозит систему, где бы он не лежал. Потому, не думаю, что вы заметите разницу между свопом в файле и в разделе. Кстати, есть ещё такой вариант - своп на отдельном диске. Может это вам тоже поможет. Во всяком случае тут вероятность потери данных минимальна. (ну если вы только диски не перепутаете :D )
ну у меня сервер на henzner поэтому вариант с диском неудобен, проще переехать на сервер помощнее. Наверное, так и сделаю.
сейчас вот полдня слежу за командой top - своп пока не задействован.
а что Вы имеете в виду - обновить программы? это yum update?
так ну в общем последил я день за системой, ram занят примерно процентов на 80 судя по htop и всегда присутствует своп. он долго занимал 22 мегабайта потом потихоньку начал подрастать. дошел до 100 мегабайт за день. не снижался ощутимо, иногда чуть-чуть снижался но потом опять подрастал.
я подумал что это какие-то данные от mysql сервера кешируются, временные таблицы и тп. очень много процессов от майскл висело. я сделал service mysqld restart. своп сразу прыгнул в изначальные 22 мегабайта.
при этом днем я проверял профайлером mysql - никаких серьезных тяжелых запросов в системе нет. есть парочка slow queries но очень редко выполняются.
что посоветуете делать? Чем диагностировать утечку?
yum update сделал обновился только фтп, ничего серьезного.
пока что придумал поставить по крону перегрузку mysqld каждую ночь. и запланировать переезд на сервер с бОльшей озу (сейчас всего 1 гиг памяти).
topcyprus, вероятно, не совсем то, но... ещё можно увеличить процент доступной уменьшить процент оставшейся оперативной памяти прежде, чем начнутся обращения к swap'у.
topcyprus, вероятно, не совсем то, но... ещё можно увеличить процент доступной уменьшить процент оставшейся оперативной памяти прежде, чем начнутся обращения к swap'у.
Спасибо, хороший совет! Увеличил процент, теперь юзается 90% озу.
Скажите, а можно ли как-то поставить триггер на размер свопа? Чтобы в случае, если размер свопа > x, запускалась команда перезагрузки mysqld и httpd?
Я так понял проблема в числе одновременных запросов, если оперативная память забивается, то система начинает судорожно свопиться, всё тормозит и рано или поздно вылетает, потому что текущие запросы система обработать из-за тормозов не успевает, а одновременно поступают новые. Вот тут бы и перегрузить апач, так сказать, по пути наименьшего сопротивления.
Скажите, а можно ли как-то поставить триггер на размер свопа? Чтобы в случае, если размер свопа > x, запускалась команда перезагрузки mysqld и httpd?
легко. Свободное пространство узнайте так:
[console]$ sed -rn 's/^SwapFree:\s+([0-9]+)\s+\S+$/\1/p' /proc/meminfo [/console]
(хотя учтите, что в некоторых линуксах эта команда может работать не правильно)
размер в Кб. Я думаю вам не составит труда сравнивать это число с порогом каждые 5 минут.
Ещё почитайте эту старую, но годную статью: http://www.opennet.ru/base/sys/swap_create.txt.html
(некоторые вещи там неправильные, т.ч. относитесь критически - ссылку даю для ознакомления)
[quote=topcyprus]Скажите, а можно ли как-то поставить триггер на размер свопа? Чтобы в случае, если размер свопа > x, запускалась команда перезагрузки mysqld и httpd?
легко. Свободное пространство узнайте так:
[console]$ sed -rn 's/^SwapFree:\s+([0-9]+)\s+\S+$/\1/p' /proc/meminfo [/console]
(хотя учтите, что в некоторых линуксах эта команда может работать не правильно)
размер в Кб. Я думаю вам не составит труда сравнивать это число с порогом каждые 5 минут.
Ещё почитайте эту старую, но годную статью: http://www.opennet.ru/base/sys/swap_create.txt.html
(некоторые вещи там неправильные, т.ч. относитесь критически - ссылку даю для ознакомления)[/quote]
Спасибо! А можно еще раз нагло воспользоваться вашей образованностью и спросить ламовопрос, а как sed использовать в sh скрипте?