На лезвии ножа Andrey Matveev Хакер, номер #075, стр. 075-052-2 Для увеличения производительности следует, во-первых, при разбиении диска расположить разделы, к которым чаще всего происходит обращение (корневой раздел, раздел подкачки, /var и /tmp), ближе к краю диска (напомню, геометрия дисков такова, что за единицу времени с крайних дорожек можно прочесть больше данных, чем с дорожек, расположенных ближе к центру), во-вторых, распределить задачи, интенсивно работающие с винчем, между разными жесткими дисками, и в-третьих, применить особые опции монтирования: noatime для отключения записи времени доступа для каждого объекта файловой системы и softdep для включения механизма мягкого обновления. Элегантное конфигурирование mySQL Со вступлением закончили. Теперь перейдем к установке и конфигурированию сервера баз данных. Первой командой устанавливаем прекомпилированный пакет серверной части MySQL (все зависимости инсталлируются автоматически), а второй командой, чтобы проверить работоспособность БД, запускаем скрипт для создания типовых баз mysql и test: # pkg_add mysql-server-4.0.20.tgz # /usr/local/bin/mysql_install_db В стартовом сценарии /etc/rc.local указываем опции для запуска mysqld. Напомню, что mysqld_safe - это своего рода обертка (wrapper), которая запускает mysqld с заданными параметрами, мониторит состояние демона и при необходимости перезапускает главный процесс MySQL. При загрузке ОС используем следующие опции: работа в фоновом режиме, запуск демона от имени непривилегированного пользователя _mysql (опечатки нет, первый символ действительно нижнее подчеркивание), число открытых файлов равно тысяче (это workaround для OpenBSD), mysqld должен не биндиться на сетевые адреса и работать через сокет (наша БД будет использоваться только локально установленными программами). # vi /etc/rc.local if [ -x /usr/local/bin/mysqld_safe ]; then echo -n ' mysqld' /usr/local/bin/mysqld_safe --user=_mysql \ --open-files=1000 --skip-networking \ --socket=/var/www/var/run/mysql/mysql.sock & fi Ни один серьезный сервис не обходится без собственного конфигурационного файла, и в данном случае MySQL не исключение. Мы возьмем предлагаемый разработчиками пример конфига, назначим ему корректные права доступа и отредактируем применительно к нашим задачам: # cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf # chmod 644 /etc/my.cnf # vi /etc/my.cnf [client] socket = /var/www/var/run/mysql/mysql.sock [mysqld] socket = /var/www/var/run/mysql/mysql.sock skip-locking key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K myisam_sort_buffer_size = 8M Все перечисленные параметры прекрасно документированы, поэтому здесь подробно не останавливаюсь. Отмечу только, что если ты планируешь превратить свой компьютер в мастер-сервер SQL и заняться репликацией баз данных, то не забудь добавить в секцию [mysqld] директивы log-bin и server-id = 1. |