powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / уменьшить потребление оперативной памяти сервером MySQL
11 сообщений из 11, страница 1 из 1
уменьшить потребление оперативной памяти сервером MySQL
    #39630169
sunny1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу уменьшить потребление оперативной памяти сервером MySQL. На сервере есть базы, содержащие как таблицы InnoDB, так и MyISAM. Если я конвертирую таблицы MyISAM в InnoDB это даст результат? Также подскажите, можно ли для экономии памяти уменьшить количество потоков, как это сделать? Базы используются для CMS Drupal и MediaWiki.
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39630186
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sunny1983,

Расход памяти зависит от настроек в конфиге, который вы не привели.

Таблицы имеет смысл сконвертировать в InnoDB, но может понадобиться пересмотр SQL-запросов и индексов на этих таблицах, чтобы не потерять производительность. И после конвертации надо урезать кэш индексов MyISAM, что, собственно, и даст желаемую экономию памяти. Возможно, часть сэкономленной памяти придется отдать на кэш InnoDB.
sunny1983Также подскажите, можно ли для экономии памяти уменьшить количество потоков, как это сделать?Можно. Но тогда придется корректировать скрипты, чтобы они могли корректно обработать ошибку нехватки коннектов и подождать. И тогда буду плодиться процессы веб-сервера, насколько я понимаю. А если и их ограничить, то сайт начнет выдавать ошибку вместо страниц.
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39630286
sunny1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftРасход памяти зависит от настроек в конфиге, который вы не привели.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
bind-address=127.0.0.1
port=3306
socket=/var/lib/mysql/mysql.sock
datadir=/var/lib/mysql
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
performance_schema=off
validate-password=off
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
query_cache_size = 30
max_connections = 15
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39630294
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sunny1983
Код: sql
1.
default-character-set = utf8mb4

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

Среди приведенных параметров нет параметров для управления занимаемой памятью.
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39630384
sunny1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CMS требует utf8mb4
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39630556
sunny1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftСреди приведенных параметров нет параметров для управления занимаемой памятью.
Потому что у меня практически умолчальный конфиг. Единственное, что я в нём изменял - это закрыл доступ к серверу отовсюду кроме localhost и добавил поддержку utf8mb4. Параметры, касаемые потребления памяти, я никакие не вписывал, прочитал об этом на хабре, но точно не понял как это делать правильно, вроде есть отдельные параметры для таблиц InnoDB (такие как innodb_buffer_pool_size), а есть отдельные для MyISAM (такие как myisam_sort_buffer_size), какие значения нужно в них установить, учитывая то, что, как я писал выше, я хочу сконвертировать все таблицы MyISAM в InnoDB.
Проблема в том, что когда я запускаю htop, я вижу что у меня в памяти висит 29 процессов mysql. Возможно ли как-то уменьшить их число?
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39631168
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sunny1983CMS требует utf8mb4Самописная или какая-то экзотика?
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39631183
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sunny1983закрыл доступ к серверу отовсюду кроме localhostНе совсем так.
Чтобы было совсем надо bind-address=127.0.0.1 заменить на skip-networking
sunny1983вроде есть отдельные параметры для таблиц InnoDB (такие как innodb_buffer_pool_size), а есть отдельные для MyISAM (такие как myisam_sort_buffer_size), какие значения нужно в них установить, учитывая то, что, как я писал выше, я хочу сконвертировать все таблицы MyISAM в InnoDB.Вообще желательно innodb_buffer_pool_size выставлять так, чтобы в него влезли все таблицы и индексы на движке InnoDB. Насколько это возможно в ваших условиях - не могу сказать, недостаточно данных.
myisam_sort_buffer_size достаточно установить в 8 Мбайт или даже меньше, если нет таблиц MyISAM.
sunny1983Проблема в том, что когда я запускаю htop, я вижу что у меня в памяти висит 29 процессов mysql. Возможно ли как-то уменьшить их число?Это, скорее всего, потоки, а не процессы.
Часть из них нужна MySQL для работы, а часть - обслуживают клиентские сессии.

Но ужимать слишком сильно MySQL тоже нельзя.
Например, чем меньше будет буферный кэш (innodb_buffer_pool_size), тем дольше будут выполняться запросы, тем больше будет одновременных сессий, тем выше расход памяти.
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39631246
sunny1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftСамописная или какая-то экзотика?
Drupal. Некоторые модули требуют utf8mb4.
miksoftнедостаточно данных.
А какие данные нужны? Есть VDS, с 512 Мбайт оперативной памяти, на ней подняты apache, mysql, bind и postfix. Имеющуюся ситуацию (29 процессов/потоков, не до конца понимаю в чём отличия) наблюдаю при нулевой нагрузке на сайт. Расчётная пиковая нагрузка не более 300 запросов в секунду.
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39631273
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sunny1983А какие данные нужны?Каков размер всех таблиц и индексов InnoDB?
...
Рейтинг: 0 / 0
уменьшить потребление оперативной памяти сервером MySQL
    #39631412
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sunny1983Drupal....
Есть VDS, с 512 Мбайт оперативной памяти...

https://www.drupal.org/node/1505394
Minimal Recommendation

Server 2 GHz Dual-core
Architecture and Operating System 64-bit
Memory (RAM) 4 GB
Hard Drive 120 GB
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / уменьшить потребление оперативной памяти сервером MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]