Текущее время: 12 дек 2017, 08:52

Часовой пояс: UTC + 10 часов




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: 02 мар 2013, 02:44 
Не в сети
Аватар пользователя

Зарегистрирован: 10 янв 2012, 08:31
Сообщений: 34
Откуда: Хабаровск
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Уменьшение поедания памяти сервера Apache, MySQL (CentOS, Red Hat)
Речь в данно статье пойдет об уменшении прожорливости некоторых служб на мелких серверах и VDS под управлением CentOS. Данна настройка поможет уменьшить потребление оперативной памяти на сервере и снизит нагрузку на процессор.

Оптимизация Apache

Измените настройки в файле /etc/httpd/conf/httpd.conf
KeepAlive On
KeepAliveTimeout 3


StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 100
MaxClients 100
MaxRequestsPerChild 500

StartServers 2
MaxClients 150
MinSpareThreads 15
MaxSpareThreads 50
ThreadsPerChild 15
MaxRequestsPerChild 0

Перезгузитесь
# service httpd restart

Оптимизация MySQL

Отредактируйте файл настроек MySQL /etc/my.cnf
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
Перезгузитесь
# service mysql restart


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 мар 2013, 02:47 
Не в сети
Аватар пользователя

Зарегистрирован: 10 янв 2012, 08:31
Сообщений: 34
Откуда: Хабаровск
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Оптимизация сервера MySql. Шаг первый. Утилита mysqltuner.
MySQL
Так повелось, что в мире хостинга , самой популярной базой данных, де факто стала база mysql. Простота установки , бесплатность, а главное, высокая скорость работы, сделали ее одной из наиболее часто используемых баз данных в мире хостинга. Она может многое, работает быстро, но, без должной изначальной настройки может стать очень узким местом. А отсюда может тянуться и медленная загрузка страниц сайта, и ошибки на страницах вида "Too many active connections".

После установки mysql на выделенный сервер, изначально его файл конфигурации размещается в /etc/my.cnf и выглядит весьма скромно. В такой конфигурации работать то он будет, но про какую-либо оптимальную работу говорить не приходиться. Вот и попробуем немного улучшить наши настройки сервера mysql, для его более оптимальной работы. Первым делом нам необходимо взять более менее нормальный конфигурационный файл my.cnf, более подходящий для нашего сервера. А найти его можно в /usr/share/mysql. Там есть четыре необходимых нам файлика: my-small.cnf, my-medium.cnf, my-large.cnf и my-huge.cnf. Выбираем под наш сервер, нашу память, наши запросы наиболее подходящий файл. my-small.cnf - конфигурация для систем с обьемом памяти менее 64Mb, где mysql используется время от времени. Это не для нас. medium.cnf - чуть лучше, под mysql может выделяться до 64Мb памяти. В общем то это тоже обычно не для нас, разве что очень маломощные VDS, VPS. my-large.cnf - уже посерьезнее, для систем с оперативной памятью от 512Мb. my-huge.cnf - для систем с оперативной памятью 1-2Gb. Выбираем одну из наиболее подходящих нам конфигураций и переписываем ее вместо текущей my.cnf . Например:

cp /usr/share/mysql/my-large.cnf /etc/my.cnf

После чего делаем рестарт сервера.

service mysqld restart

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



Одной из таких утилит, которая может помочь в выявлении проблемных мест конфигурации сервера mysql, является утилита mysqltuner. Утилита представляет собой скрипт написанный на языке perl. Инсталляции не требует. Его просто нужно скачать

wget http://mysqltuner.pl/

и запустить

perl mysqltuner.pl

Скрипт попросит имя и пароль MySQL администратора, после чего выведет результаты своей работы. Вывод результатов работы утилиты примерно такой:

[root@host 1]# perl mysqltuner.pl


>> MySQLTuner 1.0.1 - Major Hayden <major@mhtx.net>
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password:

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.0.82sp1-log
[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM

-------- Storage Engine Statistics -------------------------------------------
[--] Status: -Archive +BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 19M (Tables: 90)
[!!] InnoDB is enabled but isn't being used
[!!] BDB is enabled but isn't being used
[!!] Total fragmented tables: 18

-------- Performance Metrics -------------------------------------------------
[--] Up for: 16m 37s (6K q [6.059 qps], 146 conn, TX: 54M, RX: 665K)
[--] Reads / Writes: 62% / 38%
[--] Total buffers: 298.0M global + 6.3M per thread (100 max threads)
[OK] Maximum possible memory usage: 929.2M (26% of installed RAM)
[OK] Slow queries: 0% (0/6K)
[OK] Highest usage of available connections: 5% (5/100)
[OK] Key buffer size / total MyISAM indexes: 256.0M/2.3M
[!!] Key buffer hit rate: 91.3% (1K cached / 101 reads)
[OK] Query cache efficiency: 97.6% (5K cached / 5K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 8 sorts)
[OK] Temporary tables created on disk: 5% (1 on disk / 17 total)
[OK] Thread cache hit rate: 96% (5 created / 146 connections)
[OK] Table cache hit rate: 95% (115 open / 121 opened)
[OK] Open file limit used: 21% (222/1K)
[OK] Table locks acquired immediately: 100% (286 immediate / 286 locks)

-------- Recommendations -----------------------------------------------------
General recommendations:
Add skip-innodb to MySQL configuration to disable InnoDB
Add skip-bdb to MySQL configuration to disable BDB
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Enable the slow query log to troubleshoot bad queries
В первую очередь, на мой взгляд, стоит обратить внимание на строку
Highest usage of available connections: 5% (5/100)
Количество текущих соединений - 5, количество возможных соединений - 100. Параметр 100 - это параметр использующийся по умолчанию. Обычно этого значения маловато, именно из-за него появляются сообщения вида "Too many active connections". Увеличим этот параметр до 300. Открываем файл /etc/my.cnf в любимом редакторе и в секции [mysqld] добавляем строчку
max_connections = 300
Сохраняемся, выходим и перегружаем сервер mysql. Повторно запустив mysqltuner увидим соответствующие изменения в выводе.

Еще одним, наиболее важным параметром увеличения производительности mysql является key_buffer_size. Параметр определяет размер общего для всех пользовательских процессов буфера индексных блоков MyISAM таблиц. Обычно устанавливается в пределах 30-40% от общей выделенной под Mysql оперативной памяти.

Следует помнить, что рекомендации утилиты mysqltuner будут тем более оптимальны, чем дольше работает без перезагрузок сервер mysql. Скажем так: минимальный интервал в общем то должен составлять не менее 24 часов, о чем и предупреждает утилита после своего запуска.

Вкратце рассказал про первые шаги на поприще оптимизации работы базы данных mysql. Очень подробную информацию практически по каждому параметру в конфиге my.cnf можно найти вот тут. Единственный минус - ресурс англоязычный, но при необходимости, я думаю, разобраться можно.
Удачи всем в деле оптимизации mysql и быстрых вам SELECT-ов. :-)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 10 часов


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB