The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Дисковый кеш (на запись)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Оптимизация и Промышленные системы (Увеличение производительнсти)
Изначальное сообщение [ Отслеживать ]

"Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 30-Мрт-10, 13:05 
Есть сервер БД (MySQL) с RAID-контроллером от Compaq, который принципиально не поддерживает кеширование записи. В связи с этим очень узким местом этой системы являются операции записи на диск.

Гугление по поводу I/O кеша в Linux не дало никакой информации (возможно, я гуглил не по тем ключевым словам...)

Поэтому обращаюсь к сообществу со следующими вопросами:

Умеет ли I/O cache в ядре Linux (речь о ядре 2.6) кешировать не только операции чтения, но и операции записи? Если умеет - как включить? И как посмотреть, включено ли оно?

Если не умеет - есть ли какой-то программный кеш, который позволит включить кеширование записи на диск в ОЗУ?

Бесперебойник на сервере достаточно надежный, поэтому вопросы возможных катаклизмов при отложенной записи не актуальны.

ОЗУ на сервере более, чем достаточно (32 гига). Практически весь этот объем занимает именно кеш.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Дисковый кеш (на запись)"  +/
Сообщение от Doka (??) on 30-Мрт-10, 22:58 
>Есть сервер БД (MySQL) с RAID-контроллером от Compaq, который принципиально не поддерживает
>кеширование записи.

что за контроллер?
можно включить кэш диска/ов, для сокращения времени отклика при записи.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 31-Мрт-10, 10:32 
>>Есть сервер БД (MySQL) с RAID-контроллером от Compaq, который принципиально не поддерживает
>>кеширование записи.
>
>что за контроллер?

Compaq Computer Corporation Smart Array 5i/532

>можно включить кэш диска/ов, для сокращения времени отклика при записи.

Подскажите, как. Или дайте ссылочку, где можно об этом почитать.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Дисковый кеш (на запись)"  +/
Сообщение от Doka (??) on 31-Мрт-10, 12:13 

>>можно включить кэш диска/ов, для сокращения времени отклика при записи.
>
>Подскажите, как. Или дайте ссылочку, где можно об этом почитать.

копай на тему sdparm и WCE

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 31-Мрт-10, 13:26 
>
>>>можно включить кэш диска/ов, для сокращения времени отклика при записи.
>>
>>Подскажите, как. Или дайте ссылочку, где можно об этом почитать.
>
>копай на тему sdparm и WCE

копнул.

sdparm работает с дисками. в моем же случае в системе дисков не видно. а видно одно устройство - /dev/cciss/c0d0 (аппаратный RAID). Возможно, через него как-то можно "достучаться" до физических дисков - но sdparm здесь вряд ли поможет...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Дисковый кеш (на запись)"  +/
Сообщение от Andrey Mitrofanov on 31-Мрт-10, 13:42 
>видно. а видно одно устройство - /dev/cciss/c0d0 (аппаратный RAID).

__Он__ и есть "диск". fdisk или lvm в руки и вперёд:

$ cat /proc/driver/cciss/cciss0
cciss0: HP Smart Array P410i Controller
Board ID: 0x3245103c
Firmware Version: 1.66
IRQ: 62
Logical drives: 2
Current Q depth: 0
Current # commands on controller: 0
Max Q depth since init: 16
Max # commands on controller since init: 31
Max SG entries since init: 31
Sequential access devices: 0

cciss/c0d0:      146.77GB       RAID 1(1+0)
cciss/c0d1:      733.90GB       RAID 5
$ cat /proc/partitions
major minor  #blocks  name

104        0  143338560 cciss/c0d0
104        1     248976 cciss/c0d0p1
104        2  143082922 cciss/c0d0p2
104       16  716708248 cciss/c0d1
254        0     499712 dm-0
254        1    5079040 dm-1
254        2    5079040 dm-2
254        3     974848 dm-3
254        4   24608768 dm-4
254        5    9768960 dm-5
254        6  262144000 dm-6
254        7   41943040 dm-7
$ _

>Возможно, через
>него как-то можно "достучаться" до физических дисков - но sdparm здесь
>вряд ли поможет...

Может логи массива попробовать почиать?

$ apt-cache search compaq array
array-info - command line tool reporting RAID status for several RAID types
arrayprobe - command line HP (Compaq) SmartArray status checker
cpqarrayd - monitoring tool for HP (Compaq) SmartArray controllers
$ _

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 31-Мрт-10, 14:39 
>>видно. а видно одно устройство - /dev/cciss/c0d0 (аппаратный RAID).
>__Он__ и есть "диск".

Если бы вы прочитали весь тред, а не только последнюю фразу, вы бы заметили, что речь идет о _физических_ накопителях, подключенных к контроллеру. Именно на физических накопителях мне посоветовали попробовать включить кеширование записи.

О том, что "логические" диски RAID'а являются "дисками" в терминологии Линукса, я в курсе :)

>>Возможно, через
>>него как-то можно "достучаться" до физических дисков - но sdparm здесь
>>вряд ли поможет...
>
>Может логи массива попробовать почиать?

Как это поможет включить кеш записи на физических дисках?

>$ apt-cache search compaq array
>array-info - command line tool reporting RAID status for several RAID types
>
>arrayprobe - command line HP (Compaq) SmartArray status checker
>cpqarrayd - monitoring tool for HP (Compaq) SmartArray controllers

Насколько я понял - все они только статус показывают.

Я нашел единственную (пока) утиль - hpacucli - HP Command Line Array Configuration Utility, позволяющую "рулить" устройством. Но и она рулит только контроллером, рулить отдельными физическими дисками она не позволяет.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "Дисковый кеш (на запись)"  +/
Сообщение от Doka (??) on 16-Апр-10, 12:31 

>Я нашел единственную (пока) утиль - hpacucli - HP Command Line Array
>Configuration Utility, позволяющую "рулить" устройством. Но и она рулит только контроллером,
>рулить отдельными физическими дисками она не позволяет.

кэшем дисков позволяет .. см. документацию
=> set target ctrl slot=1
=> show

Smart Array P400 in Slot 1
   Bus Interface: PCI
   Slot: 1
   Serial Number: PAFGK0L9VWA2Z1
   Cache Serial Number: PA82C0J9VWA0EZ
   RAID 6 (ADG) Status: Disabled
   Controller Status: OK
   Chassis Slot:
   Hardware Revision: Rev E
   Firmware Version: 5.20
   Rebuild Priority: Medium
   Expand Priority: Medium
   Surface Scan Delay: 15 secs
   Post Prompt Timeout: 0 secs
   Cache Board Present: True
   Cache Status: OK
   Accelerator Ratio: 100% Read / 0% Write
   Drive Write Cache: Disabled
   Total Cache Size: 256 MB
   No-Battery Write Cache: Disabled
   Battery/Capacitor Count: 0
   SATA NCQ Supported: True

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

17. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 16-Апр-10, 17:26 
>
>>Я нашел единственную (пока) утиль - hpacucli - HP Command Line Array
>>Configuration Utility, позволяющую "рулить" устройством. Но и она рулит только контроллером,
>>рулить отдельными физическими дисками она не позволяет.
>
>кэшем дисков позволяет .. см. документацию

Дайте, плиз, ссылочку!

>=> set target ctrl slot=1
>=> show

=> set target ctrl slot=0

   "controller slot=0"

=> show

Smart Array 5i in Slot 0
   Bus Interface: PCI
   Slot: 0
   RAID 6 (ADG) Status: Disabled
   Controller Status: OK
   Chassis Slot:
   Hardware Revision: Rev B
   Firmware Version: 2.76
   Rebuild Priority: Medium
   Expand Priority: Medium
   Surface Scan Delay: 15 sec
   Cache Board Present: True
   Cache Status: OK
   Accelerator Ratio: 100% Read / 0% Write
   Read Cache Size: 16 MB
   Write Cache Size: 0 MB
   Total Cache Size: 16 MB
   Battery Pack Count: 0
   SATA NCQ Supported: False

Ни слова упоминания о физических дисках...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

20. "Дисковый кеш (на запись)"  +/
Сообщение от Doka (??) on 16-Апр-10, 18:12 
>>
>>>Я нашел единственную (пока) утиль - hpacucli - HP Command Line Array
>>>Configuration Utility, позволяющую "рулить" устройством. Но и она рулит только контроллером,
>>>рулить отдельными физическими дисками она не позволяет.
>>
>>кэшем дисков позволяет .. см. документацию
>
>
>Ни слова упоминания о физических дисках...

Firmware то последнее прошито?
судя по ХП-шному сайту последняя прошивка для 5i
2.76 от 7 июл 2008
и наскольку я помню?  с какого-то вмемени стали меняться прошивки и на дисках.
Firmware CD 3.54 (C) от 5 янв 2007
можно попробовать накатить вдруг какие опции появятся...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

21. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 16-Апр-10, 18:25 
>[оверквотинг удален]
>>>>рулить отдельными физическими дисками она не позволяет.
>>>
>>>кэшем дисков позволяет .. см. документацию
>>
>>
>>Ни слова упоминания о физических дисках...
>
>Firmware то последнее прошито?
>судя по ХП-шному сайту последняя прошивка для 5i
> 2.76 от 7 июл 2008

Она и прошита. Я ведь показал вывод 'show'

>и наскольку я помню?  с какого-то вмемени стали меняться прошивки и
>на дисках.
>Firmware CD 3.54 (C) от 5 янв 2007
>можно попробовать накатить вдруг какие опции появятся...

Ох, не люблю я на боевых серваках прошивки менять без особой на то потребности...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Дисковый кеш (на запись)"  +/
Сообщение от anonymous (??) on 31-Мрт-10, 02:51 
покажите настройки mysql (и версии, версии назовите!).
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 31-Мрт-10, 10:39 
>покажите настройки mysql (и версии, версии назовите!).

Версии чего? Ядро - 2.6.31-gentoo-r10. Мускуль - 5.0.60 (как раз сейчас обновляю до 5.0.90).

Но вопрос ведь был не про Мускуль! Вылизыванием Мускульного конфига мне еще предстоит заняться. Но перед этим я хочу устранить первое узкое место - запись на диск.

Так все-таки, умеет ли Линуховое ядро кешировать операции записи на диск?


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Дисковый кеш (на запись)"  +/
Сообщение от Doka (??) on 31-Мрт-10, 18:54 
>>покажите настройки mysql (и версии, версии назовите!).
>
>Так все-таки, умеет ли Линуховое ядро кешировать операции записи на диск?

конечно умеет (раз с дисками засада) а надоли :-)
только двойное кеширования для баз это лишнее,  лучше без кеша прямо на диск.
можно поиграться с опциями монтирования FS.
смотрите на счет опций sync|async для ext2
osyncisdsync для xfs
...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 15-Апр-10, 10:56 
>>Так все-таки, умеет ли Линуховое ядро кешировать операции записи на диск?
>конечно умеет (раз с дисками засада) а надоли :-)

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

Если я ошибаюсь, и кеширование записи на диск лучше не делать - расскажите, почему. Про надежный (тьфу-тьфу-тьфу) бесперебойник я писал еще в 1-м посте.

>только двойное кеширования для баз это лишнее,  лучше без кеша прямо
>на диск.

Это я понял (с учетом ответа от anonymous). Заниматься кешированием должен либо сам Мускуль, либо ядро, но не оба сразу.

>можно поиграться с опциями монтирования FS.
>смотрите на счет опций sync|async для ext2

ОК, спасибо.

(Я не тормоз. Был занят другими задачами, более срочными, поэтому две недели не возвращался к этой теме)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

16. "Дисковый кеш (на запись)"  +/
Сообщение от kolayshkin email(??) on 16-Апр-10, 16:51 
>Я считаю, что надо, т.к. RAID (в нашем конкретном случае) крайне медленный.
>В перспективе Мускуль переедет на более подходящее железо, но до этого
>нужно дожить (на том, что есть).

А какой у Вас рейд собран? 5-ый, 10-ый ? Если пятый, то кеш ОС вам ничем не поможет

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 16-Апр-10, 17:28 
>>Я считаю, что надо, т.к. RAID (в нашем конкретном случае) крайне медленный.
>>В перспективе Мускуль переедет на более подходящее железо, но до этого
>>нужно дожить (на том, что есть).
>
>А какой у Вас рейд собран? 5-ый, 10-ый ? Если пятый, то
>кеш ОС вам ничем не поможет

Именно 5-й. Объясните, почему Линуховый кеш (на запись) не поможет?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

25. "Дисковый кеш (на запись)"  +/
Сообщение от kolayshkin email(??) on 19-Апр-10, 11:13 
>>>Я считаю, что надо, т.к. RAID (в нашем конкретном случае) крайне медленный.
>>>В перспективе Мускуль переедет на более подходящее железо, но до этого
>>>нужно дожить (на том, что есть).
>>
>>А какой у Вас рейд собран? 5-ый, 10-ый ? Если пятый, то
>>кеш ОС вам ничем не поможет
>
>Именно 5-й. Объясните, почему Линуховый кеш (на запись) не поможет?

А чем он поможет? Вы же сами говорите, что у Вас самое меленное звено - диски. 5-й рейд очень плох на случайные опреции записи, размер которых меньше всей полоски, так как при этом необходимо прочитать всю полоску целиком для перерасчета парити. Т.е. если у Вас пришла запись даже на один диск, контроллер прочитает весь страйп (количество операций равно количеству дисков), пересчитает парити и должен потом записать изменяемые данный и новую парити. При наличие кеша, контроллер пытается оптимизировать и чтение и запись с дисков, храня временные данные.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

26. "Дисковый кеш (на запись)"  +/
Сообщение от сабакка on 19-Апр-10, 12:55 
>
>А чем он поможет? Вы же сами говорите, что у Вас самое
>меленное звено - диски. 5-й рейд очень плох на случайные опреции
>записи, размер которых меньше всей полоски, так как при этом необходимо
>прочитать всю полоску целиком для перерасчета парити.

не обязательно, кстати
http://www.redbooks.ibm.com/redpapers/pdfs/redp4484.pdf

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Дисковый кеш (на запись)"  +/
Сообщение от anonymous (??) on 01-Апр-10, 02:06 
>>покажите настройки mysql (и версии, версии назовите!).
>
>Версии чего? Ядро - 2.6.31-gentoo-r10. Мускуль - 5.0.60 (как раз сейчас обновляю
>до 5.0.90).
>
>Но вопрос ведь был не про Мускуль! Вылизыванием Мускульного конфига мне еще
>предстоит заняться. Но перед этим я хочу устранить первое узкое место
>- запись на диск.

почитайте про innodb_flush_method

>Так все-таки, умеет ли Линуховое ядро кешировать операции записи на диск?

умеет.  но если приложение пользуется O_DIRECT, то записи идут мимо кэша.  поэтому нужно знать действующие настройки приложения, логично?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 15-Апр-10, 11:23 
>почитайте про innodb_flush_method

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

Параметр innodb_flush_method отсутствует в конфиге и имеет "пустое" значение, если посмотреть через "SHOW VARIABLES;".

>>Так все-таки, умеет ли Линуховое ядро кешировать операции записи на диск?
>умеет.  но если приложение пользуется O_DIRECT, то записи идут мимо кэша.
> поэтому нужно знать действующие настройки приложения, логично?

Конечно логично! Но я-то этого не знал...

Поэтому гораздо логичнее было бы сразу спросить про этот параметр :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "Дисковый кеш (на запись)"  +/
Сообщение от сабакка on 16-Апр-10, 13:04 
советуют
innodb_flush_method=O_DIRECT
если вообще используется InnoDB и есть raid адаптер с батарейкой
O_DIRECT исклячает двойное кэширование, т.к. СУБД сама занимается кэшированием и ей не нужен кэш ОС, поэтому нет нужды заморачиваться на файловом кэше.
Ну а вообще там же всё сложнее - какие-то записи обязательно должны быть записаны на диск (например записи в лог файлах) и никакое кэширование здесь не поможет - это требования для обеспечения косистентости и сохранности данных в базе.

удачи!

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

15. "Дисковый кеш (на запись)"  +/
Сообщение от сабакка on 16-Апр-10, 13:09 
да, не контролере raid'а (если с батарейкой) обязательно включите write cache :) ещё базы любят память - innodb_buffer_pool_size - 70-80% от общего объёма памяти
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

19. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 16-Апр-10, 17:31 
>да, не контролере raid'а (если с батарейкой) обязательно включите write cache :)
>ещё базы любят память - innodb_buffer_pool_size - 70-80% от общего объёма
>памяти

В моем 1-м посте, в 1-й строке как раз написано о том, что контроллер не поддерживает write cache

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

22. "Дисковый кеш (на запись)"  +/
Сообщение от sdog (ok) on 16-Апр-10, 18:48 
>>да, не контролере raid'а (если с батарейкой) обязательно включите write cache :)
>>ещё базы любят память - innodb_buffer_pool_size - 70-80% от общего объёма
>>памяти
>
>В моем 1-м посте, в 1-й строке как раз написано о том,
>что контроллер не поддерживает write cache

Тогда советую проапгрейдится до Smart Array 5i Plus

Q7. What is the difference between the Smart Array 5i and the Smart Array 5i Plus?
A7. The Smart Array 5i Plus is the upgraded version of the Smart Array 5i now with 64MB Cache and the capability to add battery backed write cache.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

23. "Дисковый кеш (на запись)"  +/
Сообщение от IVB email(ok) on 16-Апр-10, 18:59 
>>>да, не контролере raid'а (если с батарейкой) обязательно включите write cache :)
>>>ещё базы любят память - innodb_buffer_pool_size - 70-80% от общего объёма
>>>памяти
>>
>>В моем 1-м посте, в 1-й строке как раз написано о том,
>>что контроллер не поддерживает write cache
>
>Тогда советую проапгрейдится до Smart Array 5i Plus

А по существу вопроса что-то можете посоветовать?

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

24. "Дисковый кеш (на запись)"  +/
Сообщение от sdog (ok) on 16-Апр-10, 23:43 
>Умеет ли I/O cache в ядре Linux (речь о ядре 2.6) кешировать не только операции чтения, но и операции записи? Если умеет - как включить? И как посмотреть, включено ли оно?

умеет и ничего включать не надо, как конкретно это работает зависит от используемой ФС и приложения.

>Если не умеет - есть ли какой-то программный кеш, который позволит включить кеширование записи на диск в ОЗУ?

все что приходит на ум - это tmpfs, но это не совсем то.

в вашем случае, я бы занялся тюнингом mysql'а, т.к. mysql имеет свою, систему кэширования, и может обходится без кэша ОС вовсе.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

27. "Дисковый кеш (на запись)"  +/
Сообщение от sHaggY_caT (ok) on 01-Май-10, 03:34 
>Есть сервер БД (MySQL) с RAID-контроллером от Compaq, который принципиально не поддерживает
>кеширование записи. В связи с этим очень узким местом этой системы
>являются операции записи на диск.

Может быть, он просто не включается без батарейки?
По теме, после прочтения комментариев:

1. НЕ используйте 5-й рейд, сделайте десятый. Это обязательно, и сразу даст Вам очевидный эффект
2. Не делайте этого(!) не отрепетировав схему восстановления из бэкапов, или не проклинайте меня потом, пожалуйста:

http://wiki.centos.org/HowTos/Disk_Optimization

Конечно, не Gentoo, но советы дельные

3. Как уже сказали, тюньте innodb

4. Может лучше вообще выкинуть этот недоконтроллер и сделать рейд через mdraid? Он гораздо быстрее, чем многие "православные" аппаратные контроллеры с кэшем, защищенным батарейкой, но слабым чипом для обсчета операций
Сделайте десятый рейд через md, это может сразу же облегчить жизнь в разы

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру