LINUX.ORG.RU

Заставить MySQL использовать больше памяти


0

0

Есть сервер с 8 гигами оперативки. На нем крутится MySQL 5.0.45.
В данный момент по топу вижу:

Mem:   8235960k total,  7952880k used,   283080k free,     7796k buffers
Swap:        0k total,        0k used,        0k free,  5683880k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
8352 mysql     15   0 1355m 669m 5356 S   14  8.3   2980:03 /usr/sbin/mysqld ...

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

Стоит Ubuntu 7.10 с ядром 2.6.22-14-server на Core 2 Duo

Вот настройки MySQL:

sort_buffer_size        = 1G
tmp_table_size          = 512M
max_heap_table_size     = 512M
key_buffer              = 1G
max_allowed_packet      = 16M
thread_stack            = 256K
thread_cache_size       = 8
max_connections         = 700
table_cache             = 64K
thread_concurrency      = 10
join_buffer_size        = 4M
query_cache_limit       = 4M
query_cache_size        = 160M

Что есть смысл подкрутить и есть ли смысл вообще?
anonymous

Не трогай ничего !!! Работает - ? Пусть работает. Пойди на турники по подтягивайся если делать нечего.

paranormal ★★
()
Ответ на: комментарий от paranormal

Я хочу заставить мускул более резво использовать память, 
на кой хрен ее столько покупалось тогда?

А советы "работает - не трогай" используйте для себя,
я хочу повысить производительность сервера

anonymous
()
Ответ на: комментарий от anonymous

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

aspel
()
Ответ на: комментарий от aspel

собственно все с этим скриптом и делалось, сейчас сплошь все зелененькое, параметры были поставлены как раз по советам и скрипта и phpmyadmin

anonymous
()
Ответ на: комментарий от anonymous

значит ты свою работу сделал, марш на турники.

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

aspel
()

> Что есть смысл подкрутить и есть ли смысл вообще?

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

Вообще, MySQL сильно полагается на ОС в кешировании дисковых данных. Поэтому нормально он работает только когда занимает небольшной объем памяти, и есть достаточно свободной ram для кеширования.

gods-little-toy ★★★
()

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

phasma ★☆
()
Ответ на: комментарий от phasma

Блиать, ну сплошные специалисты собрались. Тьфу.
Я спрашивал про настройки в my.conf, которые можно потюнить еще, чтобы
бОльшая часть таблиц (часто-используемых, а такие есть) держалась в памяти, допустим (без шаманства с type=MEMORY или RAM диск)

anonymous
()
Ответ на: комментарий от anonymous

> я хочу повысить производительность сервера

ты на неё дрочить собрался? тебе не хватает производительности субд штоли? как мускулю понадобится память - так он её и зохавает

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

> так он её и зохавает...

Мой мосг уже захавали.

Первый рас услышал что у php есть красные параметры и.... и зелёные !!!

Мля у хостеров по сто лишнем сайтов работает на mysql без какой либо оптимизации. Я не просто так сказал не трогай ничего.

Мой my.cnf выглядит так :

[mysqld]
port=3306
socket=/tmp/mysql.sock


set-variable=default-character-set=utf8
set-variable=default-collation=utf8_general_ci

paranormal ★★
()

>sort_buffer_size = 1G

это ужас, да еще при возможных 700 одновременных соединениях.

Chumka ★★★
()

> sort_buffer_size = 1G

А не лопнешь?

sort_buffer_size предназначен для операций ORDER BY GROUP BY и для каждого отдельного потока выделяется индивидуальный буф.

> key_buffer = 1G

Сомневаюсь что он используется хотябы на 50%...

Надо читать референс мануал. Так лучше будет.

Defence
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.