Программирование >>  Программный интерфейс приложений 

1 ... 161 162 163 [ 164 ] 165 166 167 ... 264


max allowed packet. Максимальный размер буфера для обмена информацией с одним клиентом. Значение этой переменной рекомендуется увеличить, если клиенты в процессе работы отправляют большие значения BLOB и TEXT.

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

mysql --set-variable max allowed packet=24M

max connections. Максимальное количество одновременных клиентских соединений сервера. Администраторам сильно загруженных серверов следует увеличить значение этой переменной. Так, например, если сервер MySQL используется Web-сервером для обработки запросов DB1- и РНР-сценариев и объем Web-данных очень велик, установка низкого значения этого параметра приведет к отклонению запросов многих пользователей.

table low. Эта переменная определяет размер кэша таблиц. Увеличение этого значения позволит mysql держать открытыми большее число таблиц, что уменьшает число открытий и закрытий файлов.

При увеличении значений переменных maxconnections или table cache серверу понадобится большее число дескрипторов файлов. С этим могут возникнуть проблемы, если в операционной системе установлены жесткие ограничения по числу дескрипторов файлов на один процесс. Это ограничение необходимо либо увеличить, либо попытаться обойти другим способом. Способы увеличения числа дескрипторов могут быть разными. Можно, например, воспользоваться командой и limit сценария запуска сервера, либо вовсе перенастроить сервер. Для подобной настройки в некоторых системах достаточно просто отредактировать системный файл описания и перезагрузиться. В других операционных системах для этого же придется редактировать файл описания ядра или перестраивать ядро. Как действовать в каждом конкретном случае, лучше узнать в справочном руководстве по операционной системе.

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

Существуют еще две переменные, значения которых администр:иоры иногда увеличивают в надежде на повышение производительности работы - recordbuffer и sort buffer. Эти буферы используются в про-

J7 1724



цессе операций объединения и сортировки данных, и их значения определяют размер буфера для одного клиентского соединения. Таким образом, каждый клиент получает свой собственный буфер. Если значения этих переменных установить достаточно большими, производительность системы может снизится из-за неэффективного распределения ресурсов. Чтобы настроить эти переменные, просмотрите сначала их текущие значения с помощью команды mysqladmin variables, а затем незначительно увеличивайте (или уменьшайте) их. В этом случае можно достичь наибольшего эффекта без серьезного снижения производительности.

Запуск нескольких серверов

Большинство пользователей предпочитают запускать один сервер MySQL на одной машине, однако в некоторых случаях (описанных далее) возникает необходимость в запуске сразу нескольких серверов.

Администратор желает протестировать новую версию сервера, прежде чем полностью перевести под его управление всех пользователей. В этом случае запускаются, как правило, несколько разных версий одного сервера.

Операционные системы обычно накладывают офаничения по числу дескрипторов файлов на один процесс. Если увеличить это значение невозможно, обойдите данное Офаничение посредством запуска нескольких серверов. (Повышение лимита, например, может пофебовать перекомпиляции ядра, однако довольно часто админисфатор MySQL не является сразу и администратором компьютера, что делает невозможным такую компиляцию.) В этом случае, как правило, запускаются несколько серверов одной версии.

Провайдеры услуг Internet зачастую обеспечивают своих клиентов собственными инсталляциями MySQL, для которых вовсе необязательно вьщелять отдельные серверы. В таком случае достаточно запустить несколько образцов одной версии сервера или нескольких версий, если клиенты используют разные версии MySQL.

Безусловно, запустить несколько серверов сложней, чем запустить один. Недостаточно установить несколько версий одного продукта в разные каталоги. Ведь при запуске нескольких серверов определенные парамефы должны быть уникальными для каждого сервера. Некоторые из них определяют местоположение инсталляции сервера, имя и путь каталога данных, номер порта TCP/IP, имя и путь доменного разъема UNIX, а также учетную запись UNIX, используемую для запуска сервера (если, конечно, все серверы не работают под управлением одной учетной записи). Администратор, управляющий сразу несколькими серверами, должен обязательно записать все значения параметров серверов, иначе он может со временем забыть их.



Инсталляция и настройка нескольких серверов

Инсталлируемые на одном компьютере разные версии одного сервера следует размещать в различных каталогах. В процессе инсталляции двоичных (не RPM-) дистрибуций все файлы размещаются в каталоге, название которого включает номер версии. Наиболее простой способ отделить дистрибуции при инсталляции с исходного кода - воспользоваться опцией --with-prefix при запуске команды configure в процессе инсталляции каждой версии MySQL. Это приведет к инсталляции всех файлов в одном каталоге, который можно разделить по номерам версий. Настроить дистрибуцию MySQL можно с помощью следующей команды (version - номер версии MySQL):

% ./configure -with-prefix=/usr/local/mysql-version

В этом примере опция --with-prefix определяет уникальный каталог данных для сервера. С помощью дополнительных опций можно определить и другие значения параметров сервера, как-то номер порта TCP/IP или имя пути разъема (опции -with-tcp-port и -with-unix-socket соответственно).

При запуске нескольких вариантов одной двоичной дистрибуции сервера все опции параметров сервера необходимо устанавливать во время зафузки.

Процедуры запуска нескольких серверов

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

Основная проблема, с которой сталкивается админисфатор в такой ситуации, - определение парамефов в конфигурационном файле. Файл /etc/my. cnf невозможно использовать для установок, изменяющихся для разных одновременно работающих серверов. В этом файле можно определять только установки, значения которых одинаковы для всех серверов. Если каждый устанавливаемый сервер размещается в своем каталоге данных, можно определить параметры каждого сервера в файле my.cnf, размещенном в соответствующем каталоге данных. Другими словами, используйте файл /etc/my. cnf для общих установок всех серверов и файл DATADIR/my. cnf, где DATADIR - каталог данных каждого сервера, - для определения специфических парамефов отдельных серверов.

Еще один способ определения опций сервера заключается в использовании в качестве первой опции командной сфоки -defaults-



1 ... 161 162 163 [ 164 ] 165 166 167 ... 264

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика