URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4098
[ Назад ]

Исходное сообщение
"Оптимизация MySQL"

Отправлено leog , 28-Мрт-05 12:37 
Народ, подскажите.
Есть сервер (2 CPUs 1300MHz, 1GB memory) Apache 1.3.33 + mod_perl + php + MySQL.
Помимо всяческих ВЕБ-запросов сервер получает почти сплошным потоком (через ftp) записи, которые быстренько обрабатываются и записываются в БД. Загрузка этого двухпроцессорного сервера от 70 до 500% (в среднем 150%) и большая часть приходится на MySQL.
Как оптимизировать MySQL чтоб он работал как можно быстрее и не "ел" столько CPU?

Содержание

Сообщения в этом обсуждении
"Оптимизация MySQL"
Отправлено chip , 28-Мрт-05 14:33 
>Народ, подскажите.

Не мешло бы еще ОС указать и версию MySQL!

Для FreeBSD попробуй пересобрать MySQL с linuxthreads. Потому что даже на нативной libptreads из 5.3 MySQL показывает удручающие результаты.


"Оптимизация MySQL"
Отправлено nide , 28-Мрт-05 14:41 
>Народ, подскажите.
>Есть сервер (2 CPUs 1300MHz, 1GB memory) Apache 1.3.33 + mod_perl +
>php + MySQL.
>Помимо всяческих ВЕБ-запросов сервер получает почти сплошным потоком (через ftp) записи, которые
>быстренько обрабатываются и записываются в БД. Загрузка этого двухпроцессорного сервера от
>70 до 500% (в среднем 150%) и большая часть приходится на
>MySQL.
>Как оптимизировать MySQL чтоб он работал как можно быстрее и не "ел"
>столько CPU?

ОС действительно следовало бы указать. От нее многое зависит. На phpclub лежит 10ый номер журнала phpinside. Дык вот, там проводился тест на работу ОС с MySQL. На сколько я помню,лучшим оказался Linux 2.4 или 2.6


"Оптимизация MySQL"
Отправлено leog , 28-Мрт-05 16:00 
Да, это я действительно дал маху не указав ОС.
OS: RedHat linux enterprise (v9) Kernel 2.4.21-4
MySQL 4.1.9
Сборка MySQL-я следующая:
   CC=gcc
   CXX=gcc
   CFLAGS="-O3"
   CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti"

   ./configure                                     \
       --prefix=/usr/local/mysql               \
       --enable-dependency-tracking            \
       --with-archive-storage-engine           \
       --with-csv-storage-engine               \
       --with-extra-charsets=complex           \
       --enable-thread-safe-client             \
       --enable-local-infile                   \
       --enable-assembler                      \
       --disable-shared                        \
       --with-client-ldflags=-all-static       \
       --with-mysqld-ldflags=-all-static       \
       --with-embedded-server                  \
       --with-innodb


"Оптимизация MySQL"
Отправлено Асен Тотин , 29-Мрт-05 00:13 
Привет,

Можно попробовать еще

     --without-debug
     --without-benchmark

если онни поддерживаются в это ветке. Очень полезно посмотреть статистику самого сервера - на консоли набрать \s и внимательно прочитать последнюю строчку - в особенности, Slow queries: и Queries per second avg.

WWell,


"Оптимизация MySQL"
Отправлено MaximKuznetsov , 29-Мрт-05 09:17 
>Народ, подскажите.
>Есть сервер (2 CPUs 1300MHz, 1GB memory) Apache 1.3.33 + mod_perl +
>php + MySQL.
>Помимо всяческих ВЕБ-запросов сервер получает почти сплошным потоком (через ftp) записи, которые
>быстренько обрабатываются и записываются в БД. Загрузка этого двухпроцессорного сервера от
>70 до 500% (в среднем 150%) и большая часть приходится на
>MySQL.
>Как оптимизировать MySQL чтоб он работал как можно быстрее и не "ел"
>столько CPU?
в догонку - немешало бы еще посмотреть вывод explain..
и еще - Вы знаете какие именно запросы так нагружают машину ?
если возможно, то стоит привести запросы и формат таблиц к которым они обращаются..
вообще-то это первое, что надо делать - сначала оптимизируются запросы,
если не помогло - сервер(ПО) и как последний вариант - железо.


"Оптимизация MySQL"
Отправлено MaximKuznetsov , 29-Мрт-05 09:27 
и еще в догонку - читать больше про диски (HDD) и файловые системы ;-)
--
если в системе IDE, и нет возможности перезда на SCSI то отсадить базу на отличный от / и htdocs контроллер (канал)..
раздел с базой желательно держать на XFS (она оптимизированна для активной работы с большими файлами)..

+отключить сжатие данных при передаче в настройках mysql

и можно подетальней каким образом  "сервер получает почти сплошным потоком (через ftp) записи" - тут тоже может собака порыться


"Оптимизация MySQL"
Отправлено leog , 29-Мрт-05 12:25 
Начну с железа. Про процессоры и память сказал выше. Диски SCSI RAID5. 4 диска. Filesystem: ext3 :(. Не я этот сервер собирал. Переделать возможности нет-он в другой стране и останавливать его надолго нельзя.
Таблица статическая, без varchar. В основном bigint,mediumint и smallint и всего два char(15). Всего 22 поля. 7 индексов. Количество записей только на INSERT и INSERT DELAYED примерно 50-100 в секунду. Но это не равномерно, а скачками. Один поток идет все время - 20-50 записей в секунду, а второй после получения по ftp и небольшой обработки.
Помимо этого раз в минуту запускаются процессы для сбора статистики и создания кэш-таблиц(для более быстрого выполнения отчетов). Это,в основном, SELECT. Отчеты более суровые - с выборкой по нескольким таблицам. Но это пока отдельная тема. Пока даже простые запросы выполняются медленно.
SELECT DISTINCT Company FROM table WHERE Incoming_line;
выполняется 16 секунд (размер БД примерно 6 млн. записей)

"Оптимизация MySQL"
Отправлено leog , 06-Апр-05 12:17 
Нашел несколькр причин
1. RedHat ES не очень хочет работать с пакетами не своей сборки или какая-то другая заморочка этого дистрибутива. Наверно надо было ставить не серверную версию, но от Dell - это их сервер. На Slackware все бежит на ура, но конфигурация чуть-чуть лучше. Процессоры немного сильнее.

2. Обработка таблиц MyISAM требует больше ресурсов процессора (на mySQL-евском сайте где-то вычитал), а так как запись и чтение БД постоянны, то и загрузка большая. Нужны более мощные процессоры.

Если есть еще добавления - буду рад услышать


"Оптимизация MySQL"
Отправлено lavr , 10-Апр-05 16:42 
>Нашел несколькр причин
>1. RedHat ES не очень хочет работать с пакетами не своей сборки
>или какая-то другая заморочка этого дистрибутива. Наверно надо было ставить не
>серверную версию, но от Dell - это их сервер. На Slackware
>все бежит на ура, но конфигурация чуть-чуть лучше. Процессоры немного сильнее.
>
>
>2. Обработка таблиц MyISAM требует больше ресурсов процессора (на mySQL-евском сайте где-то
>вычитал), а так как запись и чтение БД постоянны, то и
>загрузка большая. Нужны более мощные процессоры.
>
>Если есть еще добавления - буду рад услышать


добавлений немеряно - книга Жереми Заводны (это специалист yahoo по mysql, а его книга считается лучшей, основной, непревзойденной и тд и тп :):

O'Reilly High Performance MySQL - Jeremy Zawodni

можно найти в осле, если нужно, могу отдать этот бестселлер by http,
ну или застартую осла и дам ссылку ed2k

Некоторые статьи и рекомендации можно найти в его blog'е, но лучше конечно
книга.


"Оптимизация MySQL"
Отправлено leog , 12-Апр-05 15:35 
Огромное спасибо lavr-у. Книга - высший пилотаж. Рекомендую всем.