Отладьте из памяти с/var/log/messages

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

42
10.05.2014, 02:52
2 ответа
[116888]Ядро зарегистрирует кучу вещей до того, как это случится, но большинство из них, скорее всего, не будет находиться в [117492]/var/log/messages[117493], в зависимости от того, как настроен ваш [117494](r)syslogd[117495]. Попробуйте:

Первые должны показываться несколько раз, а вторые - только в одном или двух местах. Вот файл, на который вы хотите посмотреть.

Найдите оригинальную строку "Из памяти" в одном из файлов, который также содержит [117496]total_vm[117497]. За тридцать секунд до минуты (может быть больше, может быть меньше) перед этой строкой вы найдете что-то вроде:

Вы также должны найти таблицу где-то между этой строкой и строкой "Out of memory" со следующими заголовками:

Это может сказать вам не больше, чем вы уже знаете, но поля:

  1. pid[117927] The process ID.

uid[117929] User ID.

title        Ubuntu 8.04, kernel 2.6.24-18-generic (recovery mode)
root        (hd1,0)
kernel        /boot/vmlinuz-2.6.24-18-generic root=UUID=cdfc1bc0-d14b-4b48-ad24-7bb40ec2ccde ro single
initrd        /boot/initrd.img-2.6.24-18-generic


# title        Ubuntu 8.04, kernel 2.6.24-17-generic
# root        (hd1,0)
# kernel        /boot/vmlinuz-2.6.24-17-generic root=UUID=cdfc1bc0-d14b-4b48-ad24-7bb40ec2ccde ro splash
# initrd        /boot/initrd.img-2.6.24-17-generic
# quiet

# title        Ubuntu 8.04, kernel 2.6.24-17-generic (recovery mode)
# root        (hd1,0)
# kernel        /boot/vmlinuz-2.6.24-17-generic root=UUID=cdfc1bc0-d14b-4b48-ad24-7bb40ec2ccde ro single
# initrd        /boot/initrd.img-2.6.24-17-generic

tgid[117931] Thread group ID.

  1. total_vm[117933] Использование виртуальной памяти (в страницах 4 кБ)

rss[117935] Использование резидентной памяти (в страницах 4 кБ)

nr_ptes[117937] Элементы таблицы страниц

swapents[117939] Swap entries

oom_score_adj[117941] Обычно 0; меньшее число указывает на то, что при вызове киллера OOM процесс с меньшей вероятностью погибнет.

В основном можно игнорировать [117514]nr_ptes[117515] и [117516]swapents[117517], хотя я считаю, что это факторы, определяющие, кто будет убит. Это не обязательно процесс, использующий большую часть памяти, но, скорее всего, так и есть. Подробнее о процессе отбора [117518] смотрите здесь [117519]. В основном, процесс, который заканчивается наивысшей оценкой oom, убивается - это "оценка", о которой сообщается в строке "Out of memory"; к сожалению, другие оценки не сообщаются, но эта таблица дает некоторые подсказки в терминах факторов.

Опять же, это, вероятно, не сделает намного больше, чем проливает свет на очевидное: система исчерпала память, и [117520]mysqld[117521] был выбран для смерти [117522], потому что убийство высвободило бы наибольшее количество ресурсов [117523]. Это не обязательно означает, что [117524]mysqld[117525] делает что-то неправильное. Вы можете посмотреть в таблице, не выходило ли что-нибудь еще из строя в то время, но может не быть никакого явного виновника: система может исчерпать память просто потому, что вы неправильно оценили или неправильно настроили запущенные процессы.[116903].

57
27.01.2020, 19:35
[116750]Ключ к этому находится в самом сообщении - [117250]Из памяти[117251]. Когда ядро Linux голодает от виртуальной памяти (физическая оперативная память плюс подкачка), оно начинает убивать процессы, и именно это здесь и произошло. Похоже, что [117252]mysqld[117253] использовал более 2 Гб виртуальной памяти.

Сколько оперативной памяти и подкачки есть в системе? Я бы подумал о добавлении дополнительного количества оперативной памяти или, если это невозможно, о добавлении дополнительного свопа. В качестве быстрого исправления, чтобы, по крайней мере, предотвратить завершение процессов, можно было бы добавить файл подкачки.

Обновление:[117255] Глядя на объем имеющейся оперативной памяти, сразу видно, в чем проблема. У вас ~1.6 ГБ оперативной памяти и 100 МБ подкачки, но MySQL использует гораздо больше оперативной памяти. Это объясняет, почему вы видите, что процессы завершаются.[116755].

6
27.01.2020, 19:35

Теги

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