5.5.1 Настройка параметров системы, компляции и запуска
Мы начинаем с вопросов системного уровня, поскольку некоторые из них
требуют решения на самых ранних этапах. В других случаях может оказаться
достаточно только беглого просмотра этого материала, поскольку
значительного выигрыша в оптимизации он не обеспечивает. Однако всегда
хорошо иметь представление о том, какую пользу можно получить при
изменении параметров на этом уровне.
Используемая по умолчанию операционная система имеет действительно большое
значение! Чтобы получить максимальную выгоду от применения
многопроцессорных компьютеров, следует применять Solaris (так как под этой
ОС потоки работают в самом деле хорошо) или Linux (поскольку ядро 2.2
обеспечивает действительно хорошую поддержку SMP). Однако на 32-разрядных
компьютерах Linux по умолчанию имеет ограничение размера файлов в 2 Гб.
Будем надеяться, что это ограничение в скором времени будет снято при
выпуске новых файловых систем (XFS/Reiserfs). Но если вам действительно не
обойтись без файлов с размерами более чем 2 Гб на 32-разрядном ПК с
Linux-intel, то следует использовать патч LFS для файловой системы ext2.
На многих платформах MySQL еще не находился в промышленной эксплуатации,
поэтому мы рекомендуем прежде, чем остановить свой выбор на какой-либо
платформе, сначала ее протестировать.
Другие советы:
-
Если оперативной памяти достаточно, то можно было бы удалить все
внешние запоминающие устройства. Существуют операционные системы,
которые при некоторых обстоятельствах будут использовать внешние
запоминающие устройства даже при наличии свободной памяти.
-
Чтобы избежать внешнего блокирования, используйте опцию MySQL
--skip-locking
. Следует учитывать, что пока работает только один
сервер, это не будет оказывать большого влияния на функциональные
возможности MySQL. Только не забудьте остановить сервер (или
блокировать соответствующие части) перед запуском myisamchk
. В
некоторых системах такое переключение обязательно, поскольку внешнее
блокирование не работает в любом случае.
Опция --skip-locking
включена
по умолчанию при компилировании с потоками MIT-pthreads
, поскольку
функция flock()
не полностью поддерживается потоками MIT-pthreads
на
всех платформах. Для Linux также подразумевается, что блокирование
файлов пока еще ненадежно.
Нельзя использовать --skip-locking
только в
одном случае - при запуске нескольких серверов (не клиентов) MySQL на
одних и тех же данных, или при запуске myisamchk
на таблице без
предварительного сбрасывания на диск и блокирования демона mysqld
для
сервера, содержащего эти таблицы. Можно также применять команду LOCK
TABLES/UNLOCK TABLE
S даже при использовании --skip-locking
.