LINUX.ORG.RU
ФорумAdmin

[Solaris] Лимитирование IO

 


0

0

Подскажите пожалуйста, как лимитировать ввод-вывод для одного процесса/файлухи/зпула - хотя бы одно из этого же можно зарезать?

ситуация такая - есть:

SunOS xxxxxxldap07 5.10 Generic_127111-06 sun4v sparc SUNW,SPARC-Enterprise-T5220

есть на нем бэкапы каталога, которые мы недавно пофиксили и они стали делаться по нескольку часов. есть опасения, что в проде активность ИО бэкапа заимпактит нормальную работу лдапа. Бекапы лежат на отдельном зпул мирроре. Все НМЖД на одном котроллере. Так что хотелось бы либо обрезать максимальную скорость чтения и записи либо для всего зпула, либо для отдельной (и единственной) файлухи на нем (зфс). Другой вариант - ионайс для процесса бекапа, но его я так понимаю в соляре нет. Чем бы заменить?

Что посоветуете, господа админы?

★★★★★

Старый админский способ: SIGSTOP/SIGCONT с опред. интервалом, работает на любой системе.

anonymous
()
Ответ на: комментарий от val-amart

> оохо-хо, это слишком жесть. буду рад услышать, что есть более элегантное решение.

Жесть-не жесть, но вариант рабочий. Можно еще просто тупо процессор ему ограничить, эффект будет тот же.

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

ZFSych
()

Сделай зону, дай доступ к нужным каталогам (т.е. делай бэкап из зоны), а ограничить ресурсы зоны достаточно легко.

sdio ★★★★★
()
Ответ на: комментарий от sdio

не подходит, так как бекап выполняется командой серверу ЛДАП, а результат уже потом таргзиппится. запустить процесс бекапа в отдельной зоне не выйдет, увы - тоже про это думал.

val-amart ★★★★★
() автор топика
Ответ на: комментарий от ZFSych

дельно, спасибо! процессор не поможет, пробовал. про максимальное время транзакции буду рад если обьясните или кинете линком.

val-amart ★★★★★
() автор топика
Ответ на: комментарий от val-amart

запустить процесс бекапа в отдельной зоне не выйдет, увы

почему это ?
при создании локальной зоны можно унаследовать файловую систему через inherit-pkg-dir

guyvernk
()
Ответ на: комментарий от guyvernk

отлично, я вкурсе. и что мне это даст? процесс бекапа и процесс сервера должны выполняться в одной зоне, так как используют shmem, семафоры, и пайпы между собой. более того, процесс букепа инициализируется командой основному процессу, т.е. он его потомок. как его вытеснить в отдельную зону?

val-amart ★★★★★
() автор топика
Ответ на: комментарий от val-amart

команда вместо бекапа создавает файл-флажок.
скрипт в зоне чекает наличие флажка и запущенного процесса.
если флажок есть, а процесса нет - запускает процесс.

guyvernk
()
Ответ на: комментарий от guyvernk

ничего не понял.

или ты меня не понял...

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

val-amart ★★★★★
() автор топика
Ответ на: комментарий от guyvernk

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

поговорил тут с саппортом от Сана^WОракла. говорят, никак =(

val-amart ★★★★★
() автор топика
Ответ на: комментарий от val-amart

селяви...
расскажи плз что это за лдап базы такие которые бакупятся несколько часов?
ну никак не могу себе представить >_<
сам бакуплю лдап слапкатом в текстовик ldif - все очень быстро, какие то секунды

guyvernk
()
Ответ на: комментарий от guyvernk

нет конечно. информация по клиентам-юзерам.

val-amart ★★★★★
() автор топика
Ответ на: комментарий от val-amart

> про максимальное время транзакции буду рад если обьясните или кинете линком.

Да я что-то уже и не помню, как там в 127111-06 соответствующая переменная называлась. txg_time, что-ли. Но это на самом деле не очень хороший способ. Лучше использовать механизм write throttling (Solaris 10 U6 и дальше), с его помощью можно задавить скорость записи до нужных уровней.

ZFSych
()
Ответ на: комментарий от val-amart

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

Можно еще CPU Caps использовать, но я не помню, есть ли это в 127111-06.

но это не совсем то, чего хотелось, а управлять планировщиком ввода-вывода как?


Только размеры очередей настраивать.

ZFSych
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.