Нужен ли раздел Swap на сервере LAMP?

Нужен ли на самом деле раздел подкачки на сервере Ubuntu с LAMP? Я думаю, что мне это не нужно, но лучше знать наверняка, не приведет ли это к непредсказуемому поведению.
На самом деле мои мысли были такими:

  • Сервер никогда не переходит в спящий режим
  • Если он переставляет, нужно подумать о распределении нагрузки / формировании трафика и т. Д.

Правильно ли я могу отключить своп для производственного сервера?

Спасибо!

14
задан 29 November 2010 в 17:17

5 ответов

Я не согласен с тем, чтобы иметь своп на производственных серверах.

По моему опыту, ротационная замена диска делает вашу систему менее предсказуемой и более склонной к срыву отказа всей системы. Популярный сервер с высокой нагрузкой, который делает что-либо с локальным медленным диском, быстро превратится во что-то гораздо худшее, чем состояние сбоя. Время отклика увеличится в 100 раз по сравнению с обычным уровнем, и такие простые вещи, как вход в систему через консоль или ssh, могут занять минуты.

SSD-своп является особым случаем и, по крайней мере, убрал бы замедление времени поиска, которое обычно убивает систему. Тем не менее, запись все еще идет медленно, поэтому вам все равно придется ждать долгое время, чтобы восстановиться после неконтролируемого процесса.

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

Если вы используете PHP, включите ограничения памяти и следите за своими журналами на предмет их сбоев. Вот хитрость, установите ограничение ниже на вашем сервере разработки, чем в рабочей среде. Если вы используете mod_php под apache, установите MaxRequestsPerChild на несколько тысяч, чтобы httpd умер, прежде чем он станет слишком большим со временем. Прежде всего, следите за использованием памяти! Часто со временем память переползает, и вам просто нужно периодически перезапускать сервис с утечками, пока вы устраняете проблему.

0
ответ дан 29 November 2010 в 17:17

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

Такая ситуация будет происходить много раз на сервере.

а). Неоптимизированный скрипт может занимать большой объем памяти
б). Скрипты типа резервного копирования всегда будут занимать огромную память
в). интенсивный трафик

Так что хорошей практикой является наличие некоторого пространства подкачки.

Подробнее: https://help.ubuntu.com/community/SwapFaq

0
ответ дан 29 November 2010 в 17:17

Я хотел бы поблагодарить Оли за прекрасный - я знаю старый - ответ. Я считаю разделение это всегда зеленая тема! Я полностью согласен со строкой поста Оли, и я хотел бы поделиться этим - конечно же, неправдоподобным - сценарием, который я использую для мониторинга использования подкачки моих серверов.

Я всегда настраиваю серверы и сервисы для работы без перестановок вообще. Когда это произойдет, убедитесь, что что-то идет не так или, в лучшем случае, что-то превосходит ваши первоначальные планы.

Я создаю этот сценарий каждые полчаса в производственной среде. Он отправит мне уведомление, если использование Swap! = 0k. Я буду в состоянии оперативно расследовать / предпринять действия по этому вопросу, чаще всего, , прежде чем все станет действительно неправильно .

Ожидается, что вы получите: bash, top, echo, awk и рабочую почтовую команду без каких-либо проверок.

Надеюсь, что помогает.

#!/bin/bash
CURRSWAP=$(top -b -n1 |grep Swap |awk '{print $4}')
ECOMM="echo $CURRSWAP means healthy, I wont take any action."
CURRDATE=$(date)
MAILDST="your@email.addr"

case $CURRSWAP in
  [0]k) $ECOMM
        exit 0
        ;;
  *)    echo -e "Server: $HOSTNAME \n Date: $CURRDATE \n Current Swap partition usage: $CURRSWAP" | mail -s "Warning from $HOSTNAME" -- $MAILDST
        exit 0
        ;;
esac
exit 0
0
ответ дан 29 November 2010 в 17:17

Использование swap даст вам еще одну защиту от нестабильной работы сервера. Вполне может быть, что когда ОЗУ заканчивается, и на сервере без подкачки это может привести к мягкому сбою.

Я, вероятно, сейчас в меньшинстве, когда говорю, что все же имеет смысл, как они обычно рекомендовали, иметь в два раза больше свопа, чем у вас есть основная память. Даже в системе с 96 ГБ ОЗУ.

Это не стоит дорого, и, если вам это понадобится однажды, вы будете рады, что получили его. Причиной включения свопа является просто очень простой анализ затрат и выгод. Сделай это! : -)

0
ответ дан 29 November 2010 в 17:17

Правильно ли я могу отключить своп для производственного сервера?

Нет. Всегда имейте место для обмена.

Я попытался запустить рабочий сервер без подкачки один раз и примерно неделю спустя, после обновления Wordpress, PHP начал потреблять гораздо больше оперативной памяти, чем мы рассчитывали. Когда у вас заканчивается ОЗУ и у вас включен режим подкачки, все замедляется (иногда сильно, иногда совсем немного, в зависимости от того, что там происходит), но вы можете войти, найти проблему и попытаться ее исправить. она.

Когда у вас заканчивается ОЗУ и нет перестановки, процессы умирают, все останавливается, и в большинстве случаев единственным вариантом является перезагрузка. Но до тех пор, пока вы не перезагрузите компьютер, возможно, что-то сломается.

В моем мире сломанный - намного хуже, чем медленный.

Конечно, если вы обнаружите, что ваша система постоянно использует большие порции подкачки (она очень часто будет использовать некоторые просто как способ удаления старых кэшированных вещей), у вас, очевидно, есть проблема («вставить RAM, пожалуйста "), но определенно рекомендуется иметь ее в качестве защитной сетки.


В ответ на комментарий от SpamapS:

В мире «успешных сайтов» у вас есть горячие отказоустойчивости, балансировка нагрузки и другие инструменты, которые позволяют машине взорваться и не оказывают никакого влияния на остальная часть сайта. Но это занимает много денег. Наличие избыточного оборудования не выгодно для большинства сайтов, даже если они тратят деньги.

Я полностью не согласен с вашим комментарием по поводу времени безотказной работы. В традиционной системе электронной коммерции, если люди не видят ваш сайт, они не могут покупать у вас. Это не просто электронная коммерция, все коммерческие интересы в Интернете становятся намного более плачевными, если вы не работаете в течение какого-либо периода. Я знаю, потому что я размещаю сайты и услуги для компаний и управляю своими собственными сайтами. Медленно = сварливый, но вниз = ярость. Даже если вы выходите из строя только на минуту, если пользователь более двух раз видит уведомление об отказе в обслуживании, он полагает, что вы не можете поддерживать работу сайта.

Медленный сервер не идеален, но не всегда нужно запускать своп, это последнее средство, позволяющее вещам продолжать работать, пока вы их исправляете.

Вы также предполагаете, что на машине работает только одна служба. Опять же, это может быть правдой, если у вас есть мегабаки, чтобы разделить все, но в реальном мире все смешивается. Несколько веб-сайтов, ssh-демоны, ftp-серверы, почтовые серверы и т. Д. Один процесс, попадающий в swap, может даже не повлиять на другой сервис. Без обмена все имеют равные шансы на мгновенное и случайное завершение. Вы не можете это контролировать.

1113 Конечно, своп - не единственный ответ. Вам нужен мониторинг, чтобы предупредить вас, когда вы находитесь вне оперативной памяти, но простое отключение от сети и перезагрузка - это не решение для большинства людей. Я уверен, что это работает для любого многонационального веб-сайта, за который вы несете ответственность, но для нас, простых смертных (которые составляют большинство Интернета), что делает это коммерческим самоубийством.

0
ответ дан 29 November 2010 в 17:17

Другие вопросы по тегам:

Похожие вопросы: