В основном это касается Virtual Dedicated Server (VDS/VPS), т.к. дефолтная установка MySQL на CeontOS/Fedora/RHEL с дефолтным my.cnf делает malloc на сотню с лишним мегабайт.
Конечно на потребляемую память MySQL влияют такие параметры как key_buffer, query_cache_size и т.п. Но они по дефолту идут минимальные, а кеш запросов вообще по моему отключен по дефолту.
Так вот все очень просто. Добавляем в my.cnf:
skip-innodb
skip-bdb
Это выключит хандлеры InnoDB и BerkeleyDB и всю потребляемую ими память. Ну конечно делать это нужно если вы не используете вышеприведенные типы таблиц.
Далее рестартуем мускуль и видим в топе что он занимает десяток-другой мегабайт.
PS: в большинстве случаев не помешает опция и skip-networking. А вот thread_cache_size я советую поставить в значение 5-15 (в зависимости от нагрузки)
Теги: berkeleydb,innodb,memory,mysql,vds,vps
27.03.2009
Автор
admin |
FixIT, HOWTO, Базы Данных, Виртуализация, Очумелые ручки, Тюнинг |
9 comments
Мой чисто практический опыт применения InnoDB на производственных мощностях показал, что данный драйвер гавно, массивные инсерты и апдейты кладут его в смерть. Симптомы: непонятные зависания тредов мускуля, потери данных. SQL вроде проходит, ошибки не возвращает, а данные не записались.
Производственные мощности – это база в десятки гигабайт, >1k QPs и все такое.
Конечно в InnoDB есть такие вещи как FK Constraints, вроде даж триггеры есть, и даже локи на уровне строки, но …. увы. По шустроте с MyISAM он просто несравним.
Это все вопреки “форумным” мнениям начинающих программистов-теоретиков, что InnoDB рулит. Рулит. На десятке инсертов в сутки.
Еще одно заблуждение – InnoDB надежнее MyISAM, MyISAM крашится, InnoDB нет, у него мол есть восстановление из лог файла. Ну начнем с того что InnoDB вообще по непонятным причинам теряет данные при более-менее серъезной мощности. MyISAM крашится да. При криворуких составлениях схемы БД, при криворукой работе с ней и при внезапном выключении питания.
Ничего из этого лично меня не беспокоит и я наслаждаюсь производительностью MyISAM. Чего и вам советую.
Если будет время, выложу какой нить бенчмарк.
Теги: innodb,myisam,mysql,performance
23.02.2009
Автор
admin |
Базы Данных |
5 comments
Только что настраивал Mysqld, делал стандартную процедуру чистки левых рутов, и подумал написать.
Дефолтная инсталляция mysql создает следующих юзеров:
root@localhost, no password
root@127.0.0.1, no password
root@HOSTNAME, no password
После того, как мы делаем
mysqladmin password NEWPASS
Пароль устанавливается на одного из вышеперечисленных юзеров (обычно на root@localhost если на клиенте и сервере правильно указаны UNIX-сокеты). Остальные руты остаются без пароля. Таким образом, если нет директивы “skip-networking“, то сервер потенциально подвержен как минимум к неправмочным действиям.
Может быть, возможно каким то боком из пхп скрипта подсоединиться к 127.0.0.1 как root@127.0.0.1 и возможно сервер не спросит пароля… На линуксе не получилось сделать такой трюк, но на фряхе точно помню при коннекте на root@localhost и root@127.0.0.1 требует разные пароли.
Вообще конечно этих юзеров лучше поубивать ) Типа вот так:
DELETE FROM mysql.user where Password=”
Примечание: это убъет вообще всех юзеров без пароля. Лучше подумать, прежде чем делать.
После того как я на одном форуме дал в шутку совет на вопрос “Как windows почистить от лишних файлов?”:
del /F /S /Q C:\WINDOWS\*.*
… и несколько человек умудрились это запустить… В общем теперь я предупреждаю даже об очевидных вещах
Теги: mysql,security
20.07.2008
Автор
admin |
Базы Данных, Безопасность |
one comment
Кто еще не знает о великом могуществе конфигурационной переменной mysql thread_cache_size, выключенной по дефалту, поставьте ее значение от 4 до 20 и офигейте с проседания нагрузки )
P.S. Данное относится к Linux & FreeBSD 7.x
P.P.S Данное не относится к FreeBSD < 5.x
P.P.P.S Для FreeBSD 5.x,6.x необходимо для мускуля включить libthr.so в /etc/libmap.conf:
[mysqld]
libpthread.so.2 libthr.so.2
libpthread.so libthr.so
Теги: freebsd,mysql,threads
09.07.2008
Автор
admin |
Базы Данных, Тюнинг |
5 comments