Что происходит, если у Вас заканчиваются RAM и подкачка?

Копии для дублирования через серверы, которые внутренний изгиб может обеспечить более высокой доступности. Количество копий непосредственно коррелирует с количеством серверов в разделе, который может перестать работать, не принося MySQL Cluster офлайн.

Разделы состоят в том, чтобы разделить обработку через серверы, которые внутренний изгиб может обеспечить более высокой производительности. Количество разделов непосредственно коррелирует с количеством серверов, которое запрашивает к MySQL Cluster, будет разделен между.

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

MySQL Cluster не обеспечивает дублирование фронтенда MySQL Server, таким образом, это не out-of-the-box, мгновенное решение HA. Вам будет нужна или прикладная логика для определения местоположения доступного SQL-сервера, или Вам будет нужен сервисный контроль / сетевая логика для выключения неудавшегося SQL-сервера с тем, который функционирует. (Вы могли также попытаться установить фронтенд MySQL Server непосредственно на серверах приложений.)

Кроме того, хиты производительности или преимущества от MySQL Cluster будут варьироваться на основе того, как Ваше приложение использует базу данных, и какие узкие места существуют. Переключение от локальных сокетов до сетевых соединений увеличит задержку. Простые запросы для кэшированных данных будут узкое место в SQL-сервере. С другой стороны, некоторые обрабатывающие, который или связывается процессором или моим диском ввод-вывод, извлекут выгоду в большой степени. Лучший способ знать точный хит производительности или преимущество, которым MySQL Cluster будет обладать на Вашем приложении, мог бы просто состоять в том, чтобы протестировать его.

6
задан 14 March 2012 в 20:58
5 ответов

9/10 Убийца OOM придет и уничтожит программу с самым большим потреблением памяти. Иначе ваша система выйдет из строя.

Я предполагаю, что вы используете Linux.

12
ответ дан 2 December 2019 в 23:59

Это зависит от ОС, но когда действительно заканчивается, что-то умирает. Точнее, что-то говорит ОС: «Пожалуйста, дайте мне больше памяти», а ОС говорит «нет».

(Это может быть связано с простым прикосновением к некоторой памяти, которая уже была выделена, что заставляет страницу копирование при записи, так что это не так просто, как «вызвать распределитель памяти ядра»)

Технически процесс может обрабатывать эти сбои и восстанавливаться, но практически это приводит к сбою.

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

5
ответ дан 2 December 2019 в 23:59

Поскольку свободная оперативная память - это потраченная впустую ОЗУ, Linux пытается использовать как можно больше ее. Возможно, что в ОЗУ хранится много кешированных страниц на диске и других вещей только из-за наличия свободного места. Запустите free -m , чтобы узнать, как используется оперативная память на вашем компьютере. Он также покажет вам количество мегабайт, которое может быть использовано приложениями при необходимости (столбец «Свободно», вторая строка.)

2
ответ дан 2 December 2019 в 23:59

Откройте несколько свободных сеансов ssh для хоста, пока не станет слишком поздно. Когда в системе нет свободной оперативной памяти / свопа, запуск новых процессов невозможен.

Похоже, что какой-то запрос производит неожиданный объем данных, хранящихся во временной таблице (ах) - в памяти. Попробуйте убить самый старый поток, запущенный mysql:

SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, LEFT (INFO, 51200) AS Info FROM information_schema.PROCESSLIST;

Поле TIME показывает секунды, в течение которых mysql выполнял запрос. Вероятно, виноваты те, у кого больше ВРЕМЯ.

1
ответ дан 2 December 2019 в 23:59

Попробуйте развернуть специальный агент, например New Relic, чтобы увидеть, какие процессы не нужны, и начать их уничтожать. Это может спасти ваш сервер от сбоя

1
ответ дан 2 December 2019 в 23:59

Теги

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