4.4.6.6 Использование памяти утилитой myisamchk
4.4.6.6 Использование памяти утилитой myisamchk
При работе myisamchk очень важно распределение памяти. Объем используемой
myisamchk памяти не превышает количества, указанного с помощью опций -O.
Когда речь идет о применении myisamchk на очень больших файлах, следует
сначала принять решение о том, какое количество памяти будет при этом
использоваться. По умолчанию для целей исправления ошибок отводится только
около 3Mб. Применяя большие величины, можно достичь большей скорости
работы myisamchk. К примеру, если имеется более 32Mб оперативной памяти,
то можно задать следующие опции (в дополнение к любым другим указанным опциям):
shell> myisamchk -O sort=16M -O key=16M -O read=1M -O write=1M ...
В большинстве случаев достаточно использовать -O sort=16M.
Важно понимать, что myisamchk использует временные файлы, для указания на
которые служит TMPDIR. Если TMPDIR указывает на файловую систему с
размещением в памяти, то велика вероятность ошибок нехватки памяти (out of
memory). Если такое произойдет, то в TMPDIR следует поместить имя
некоторого другого каталога с большим пространством и перезапустить
myisamchk.
При выполнении ремонта myisamchk также понадобится большое количество
дискового пространства; :
-
Потребуется пространство порядка удвоенного размера файла - для
оригинала и копии файла данных. В этом пространстве нет необходимости,
когда исправление выполняется с --quick, поскольку в этом случае повторно
создается только индексный файл. Дополнительное место необходимо на том же
диске, где находится оригинальный файл записи!
-
Необходимо место для нового индексного файла, заменяющего старый. В
начальной фазе выполнения старый индексный файл усекается, поэтому обычно
данный объем можно не учитывать. Место должно обеспечиваться на диске,
содержащем оригинальный индексный файл!
-
При указании --recover или --sort-recover (но не в случае использования
--safe-recover) потребуется место для буфера сортировки:
(largest_key + row_pointer_length)*number_of_rows * 2.
Можно узнать длину ключей и row_pointer_length с помощью
myisamchk -dv table.
Это пространство выделяется на временном диске (который определяется при помощи TMPDIR либо
--tmpdir=#).
Если возникнут проблемы в связи с нехваткой дискового пространства во
время исправления, можно попробовать использовать --safe-recover вместо
--recover.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий
|