Я просто настраиваю свой новый сервер Linux Ubuntu 8.04 LTS и готовлюсь к запуску. Мое приложение представляет собой приложение, созданное на PHP с использованием Zend Framework, и есть сайт с тяжелым MySQL (как, вероятно, большинство сайтов). Пока у меня только 1 сервер, и это полноценный LAMP-сервер.
Что мне интересно, так это то, что я должен установить эти значения (показаны значения по умолчанию), чтобы получить максимальную производительность (имея в виду, что этот же сервер также работает с apache и PHP). На моем сервере 4 ГБ ОЗУ. Я только вырезал необходимые значения из файла конфигурации, чтобы избежать путаницы.
Вот еще немного информации: Пока что все настройки установки по умолчанию (включая таблицы базы данных). Я ожидаю около 100 транзакций в секунду. Я не уверен, сколько оперативной памяти я могу выделить, поскольку на самом сервере также размещены apache и php, у меня есть 1 ГБ оперативной памяти и 4 ГБ с пакетной загрузкой (размещены на виртуальном сервере). В основном мой сайт будет показывать статические значения (сайт знакомств), однако он также будет обрабатывать транзакции от разных пользователей (сохранения, изменения и т. Д.).
Вот некоторые разделы моего файла my.cnf и их соответствующие значения ...
Любая помощь или понимание будут очень благодарны.
# Fine Tuning
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
# Query Cache Configuration
query_cache_limit = 1M
query_cache_size = 16M
# Here you can see queries with especially long duration
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
# BerkeleyDB
#
# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
skip-bdb
# InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
#skip-innodb
[isamchk]
key_buffer = 16M
MySQLTuner - это сценарий, написанный на Perl, который поможет вам с настройкой MySQL и даст рекомендации по повышению производительности и стабильности. Через несколько секунд он отобразит статистику вашей установки MySQL и областей, в которых ее можно улучшить.
Важно помнить, что MySQLTuner - это сценарий, который может помочь вам с вашим сервером, но это не решение проблемы плохо работающего сервера MySQL. Наилучший прирост производительности достигается за счет тщательного анализа запросов, отправляемых на сервер, и оценки самого сервера MySQL. Квалифицированный разработчик, владеющий языком программирования или сценариями вашего приложения, должен уметь работать с администратором базы данных MySQL, чтобы найти улучшения для вашего сервера. После того, как сервер и приложение будут хорошо оптимизированы, вам, возможно, придется подумать об обновлении аппаратного обеспечения самого физического сервера.
Людям, читающим эту тему, могут быть интересны следующие статьи:
Значения по умолчанию обычно подходят для общего случая. Однако я не знаю, является ли ваш случай общим или нет.
Итак, сколько пользователей, сколько данных, сколько транзакций в секунду и т. Д. Вы ожидаете, что они должны иметь возможность обрабатывать?