Ограничить размер tmpdir

Ограничить размер tmpdir

Мне нужно ограничить использование диска MySQL tmpdir, чтобы он не "съел" все доступное дисковое пространство. Доступно около 30G, но я видел, как mysqld использовал его весь для создания временной таблицы.

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

Есть предложения? Что было бы лучшим вариантом в этой ситуации?

ОС — RedHat

uname -a    
Linux www.myservername.com 2.6.18-194.17.1.el5 #1 SMP Mon Sep 20 07:12:06 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux


mysql --version
mysql  Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (x86_64) using readline 5.1

решение1

Вы уверены в этом? Насколько мне известно, временные таблицы существуют столько, сколько им нужно - для запроса, но после этого они исчезнут. Если у вас есть столько активных запросов, которым нужны временные таблицы по 30 ГБ, это доставит вам гораздо больше проблем, чем использование всего свободного пространства (я имел в виду дисковый ввод-вывод и т. д.)

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

решение2

Если у вас есть LVM, создайте отдельный раздел для монтирования необходимого размера. Вы можете использовать опцию --tmpdir для mysqld.

Проверь это.http://dev.mysql.com/doc/refman/5.0/en/temporary-files.html

решение3

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

Спасибо всем за предложения.

Связанный контент