Задача. Некая папка содержит данные, с чтением - записью диски не справляются. совсем. оптимизации не подлежит, мопед не мой :)Решение-вынести папку в память, бэкапы+восстановление после ребута.
1) mount tmpfs /home/www/domain/public/papka -t tmpfs -o size=10000k
убрали ее в память
2) crontab -e
небольшой шелл скрипт, копирует всю /home/www/domain/public/papka в /home/www/domain/public/papka-backup каждые Х минут.3) скрипт в автозагрузке, автомонтирование+ шелл скрипт обратно из бэкапа достает файлы.
вопросы.
1) все верно?
2) проще не сделать?
однако, выполнение пункта первого не уменьшило скорость чтения, ни записи, и нагрузка не упала.
что не так?
>однако, выполнение пункта первого не уменьшило скорость чтения, ни записи, и нагрузка
>не упала.
>что не так?Вы действительно хотели уменьшить скорость чтения / записи ?
>>однако, выполнение пункта первого не уменьшило скорость чтения, ни записи, и нагрузка
>>не упала.
>>что не так?
>
>Вы действительно хотели уменьшить скорость чтения / записи ?Нет, но это было бы побочным эффектом, доставать/записывать данные из памяти легче и быстрее, чем с диска. Чего не наблюдается.
Моя цель-данные в papka убрать в память, потеря последних X минут не критична, а так система сильно перегружена из-за слишком большого кол-ва операции записи некритичных данных.
>[оверквотинг удален]
>убрали ее в память
>2) crontab -e
>небольшой шелл скрипт, копирует всю /home/www/domain/public/papka в /home/www/domain/public/papka-backup каждые Х минут.
>
>3) скрипт в автозагрузке, автомонтирование+ шелл скрипт обратно из бэкапа достает файлы.
>
>
>вопросы.
>1) все верно?
>2) проще не сделать?RAID0/stripe?
>RAID0/stripe?нет, программно надо. Там и так рейд, тупо еще дисков вставить-не вариант.
>
>>RAID0/stripe?
>
>нет, программно надо. Там и так рейд, тупо еще дисков вставить-не вариант.
>ИМХО, вам вообще тогда нужно от FS отвязываться. Если идет такое количество апдейтов, что ложится RAID, то пора задумываться о переводе на DB.
>
>ИМХО, вам вообще тогда нужно от FS отвязываться. Если идет такое количество
>апдейтов, что ложится RAID, то пора задумываться о переводе на DB.
>Да я бы и рад, но это не мое, софт закрытый и тд. mysql таблица в памяти отлично бы подошла, но нельзя. Работаем с чем есть.
может проще делать рам-диск и туда симлинки ln просавить papka->рам-диск?
>может проще делать рам-диск и туда симлинки ln просавить papka->рам-диск
>
>?tmpfs как раз и есть более удобный вариант ram-диска.
>>может проще делать рам-диск и туда симлинки ln просавить papka->рам-диск
>>
>>?
>
>tmpfs как раз и есть более удобный вариант ram-диска.да, я знаю. Но не единственный. Вот кто-нибудь пояснит мне, я papka верно убрал в память??
>>>может проще делать рам-диск и туда симлинки ln просавить papka->рам-диск
>>>
>>>?
>>
>>tmpfs как раз и есть более удобный вариант ram-диска.
>
>да, я знаю. Но не единственный. Вот кто-нибудь пояснит мне, я papka
> верно убрал в память??да кстати tmpfs может выгружаться в swap, а ramfs нет. Может лучше будет ипользовать ramfs.
По поводу пояснений: всё что буде записано в /home/www/domain/public/papka будет находится в памяти, том числе и /home/www/domain/public/papka-backup, так что делать в него резервирование немного бесмысленно (если конечно нигде нет опечаток).
>[оверквотинг удален]
>>
>>да, я знаю. Но не единственный. Вот кто-нибудь пояснит мне, я papka
>> верно убрал в память??
>
>да кстати tmpfs может выгружаться в swap, а ramfs нет. Может лучше
>будет ипользовать ramfs.
>
>По поводу пояснений: всё что буде записано в /home/www/domain/public/papka будет находится в
>памяти, том числе и /home/www/domain/public/papka-backup, так что делать в него
>резервирование немного бесмысленно (если конечно нигде нет опечаток).система 100% не свопится, так что без разницы. Я тоже об этом подумал в первую очередь :)
опечаток нету, вы немного неверно прочитали наверное, papka-backup и papka -две директории рядом, а не директория и поддиректория :)
>опечаток нету, вы немного неверно прочитали наверное, papka-backup и papka -две
>директории рядом, а не директория и поддиректория :)действительно глаз замылился. Тогда всё правильно, по крайней мере с переносом в память. Может нагрузка на диск от другого.
>>опечаток нету, вы немного неверно прочитали наверное, papka-backup и papka -две
>>директории рядом, а не директория и поддиректория :)
>
>действительно глаз замылился. Тогда всё правильно, по крайней мере с переносом в
>память. Может нагрузка на диск от другого.Нет. в софте видна скорость доступа к данным на чтение-запись, она не изменилась. Что невозможно, так как из памяти данные достаются-пишутся существенно быстрее, чем с диска.
Я что-то напутал.
Не могу понять, почему эта команда не убирает данные в память.
>[оверквотинг удален]
>>>директории рядом, а не директория и поддиректория :)
>>
>>действительно глаз замылился. Тогда всё правильно, по крайней мере с переносом в
>>память. Может нагрузка на диск от другого.
>
>Нет. в софте видна скорость доступа к данным на чтение-запись, она не
>изменилась. Что невозможно, так как из памяти данные достаются-пишутся существенно быстрее,
>чем с диска.
>Я что-то напутал.
>Не могу понять, почему эта команда не убирает данные в память.В теории оно так, а на практике как обычно, если файлы и так в дисковом кеше сидят в памяти (tmpfs кстати тоже сделана на основе кода дискового кеша только страницы не очищаются) то скорость чтения не вырастет. Скорость записи тоже ещё под вопросом. Единственное что tmpfs
даст это то что при чтение записи в эту папку с диском работать система не будет (хотя swap не исключается). Команда действительно данные в память не убирает, она только подключает папку (точку монтирования) и все что операции и читения и записи из папки будут только только с памятью без участия дисковой подсистемы.
tmpfs, ramfs придумали как-раз чтоб избавится от ram-дисков при работе с которыми задействуется драйвер fs плюс ещё всякие подсистемы тотже дисковый кеш (получается что в пямяти кешируются данные который потом буду зброшены снова в память) и т.д.
Мали что в софте видно желательно глянуть чем система вообще занимается по iotop, top и т.д.
>[оверквотинг удален]
>работать система не будет (хотя swap не исключается). Команда действительно данные
>в память не убирает, она только подключает папку (точку монтирования) и
>все что операции и читения и записи из папки будут только
>только с памятью без участия дисковой подсистемы.
>tmpfs, ramfs придумали как-раз чтоб избавится от ram-дисков при работе с которыми
>задействуется драйвер fs плюс ещё всякие подсистемы тотже дисковый кеш (получается
>что в пямяти кешируются данные который потом буду зброшены снова в
>память) и т.д.
>Мали что в софте видно желательно глянуть чем система вообще занимается по
>iotop, top и т.д.Спасибо за развернутый ответ.
Узкое место именно запись, и видно по системе, что именно запись в papka сильно грузит сервер. Я отключал вообще запись - системе резко хорошело, но без записи нельзя.
http://www.linuxfocus.org/Russian/July2001/article210.shtmlпопробую как тут описано+сделаю симлинк.
размер papka-мегов 100-200, наверное.
>http://www.linuxfocus.org/Russian/July2001/article210.shtml
>собственно там и написано что я писал выше.
>попробую как тут описано+сделаю симлинк.Теоритически ramdisk на ramfs(tmpfs) быстрее ramdisk как блочное устройство.
Но возможно теория и практика тут тоже не совпадёт.
Не совсем догоняю чем могут помочь симлинки в скорости доступа или записи.
>
>размер papka-мегов 100-200, наверное.
>Теоритически ramdisk на ramfs(tmpfs) быстрее ramdisk как блочное устройство.
>Но возможно теория и практика тут тоже не совпадёт.
>Не совсем догоняю чем могут помочь симлинки в скорости доступа или записи.
>а симлинки просто так, структура будет понятнее и красивее :)
>[оверквотинг удален]
>
>собственно там и написано что я писал выше.
>>попробую как тут описано+сделаю симлинк.
>
>Теоритически ramdisk на ramfs(tmpfs) быстрее ramdisk как блочное устройство.
>Но возможно теория и практика тут тоже не совпадёт.
>Не совсем догоняю чем могут помочь симлинки в скорости доступа или записи.
>
>>
>>размер papka-мегов 100-200, наверное.Может кто поправит.
mke2fs -m 0 /dev/ram0
1) mount /dev/ram0 /mnt/ramdisk0
2) df -h
дает
/dev/ram0 on /mnt/ramdisk0 type ext2 (rw)
3) симлинк на /mnt/ramdisk0/papka
это значит что papka сидит в ОС?
жет кто поправит.
>
>mke2fs -m 0 /dev/ram0
>
>1) mount /dev/ram0 /mnt/ramdisk0
>2) df -h
>дает
>/dev/ram0 on /mnt/ramdisk0 type ext2 (rw)
>3) симлинк на /mnt/ramdisk0/papka
>это значит что papka сидит в ОС?Ага.
>Ага.а варианты быстрее есть?
>>Ага.
>
>а варианты быстрее есть?быстрее чем память?
>>>Ага.
>>
>>а варианты быстрее есть?
>
>быстрее чем память?ну tmpfs, ramfs, /dev/ram
есть еще что-то? От версии ядра зависит? Я уже не знаю-делал по разному, и не выходит каменный цветок. Никак.
>>>>Ага.
>>>
>>>а варианты быстрее есть?
>>
>>быстрее чем память?
>
>ну tmpfs, ramfs, /dev/ram
>
>есть еще что-то? От версии ядра зависит? Я уже не знаю-делал по
>разному, и не выходит каменный цветок. Никак.tmpfs вас не устроил не смотря что теоретически он быстрее. Как уже писал выше если работа с файлами идёт постоянно то при достаточном объёме памяти они и так в памяти. Так что заметного выйгрыша в скорости в чтения получится и не должно было, запись по идее тоже поскольку сначала пишется в кэш. Если нагрузка была на диск и после переноса в память она не упала то может надо искать другую причину или папку которую не пернесли в память. После перенося в память дисковый ввод-вывод упал?
чем замерять на длительном интервале? cacti?
визуально-не особо.
>чем замерять на длительном интервале? cacti?
>визуально-не особо.если cacti стоит то да, а так с этой программой так сразу не разобраться, ради одного параметра можно и непосредственно утилитами из пакета rrdtools пользоваться. Или агента от системы мониторига поставить от тогоже zabbix, а сам сервер мониторинга на отдельной машине поставить, настроить можно относительно быстро. Можно ещё вывод vmstat перенаправить в файл на время а потом загнать потом на график. Но выше вы писали что при прекращении записи вашей хитрой программы сервер резко разгружался, а тут если резкой разгрузки не произошло то причина вероятно в другом. смотрите на вывод vmstat до и после задно и увидте как пошла рабода с /dev/ram0.
>[оверквотинг удален]
>не разобраться, ради одного параметра можно и непосредственно утилитами из
>пакета rrdtools пользоваться. Или агента от системы мониторига поставить от тогоже
>zabbix, а сам сервер мониторинга на отдельной машине поставить, настроить можно
>относительно быстро. Можно ещё вывод vmstat перенаправить в файл на время
>а потом загнать потом на график. Но выше вы писали что
>при прекращении записи вашей хитрой программы сервер резко разгружался, а тут
>если резкой разгрузки не произошло то причина вероятно в другом. смотрите
>на вывод vmstat до и после задно и увидте как пошла
>рабода с /dev/ram0.
>vmstat -d выдает, такое
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
оппа. ноль операции.
и где я затупил, интересно./dev/ram0 7931 2248 5683 29% /mnt/ramdisk0
>[оверквотинг удален]
> 0 0
> 0 0
>
>
>оппа. ноль операции.
>и где я затупил, интересно.
>
>/dev/ram0
> 7931
>2248 5683 29% /mnt/ramdisk0самое парадоксальное, что /mnt/ramdisk0/papkа обновляется!
mount
/dev/ram0 on /mnt/ramdisk0 type ext2 (rw)что-то я не понимаю вообще ничего
>[оверквотинг удален]
>>/dev/ram0
>> 7931
>>2248 5683 29% /mnt/ramdisk0
>
>самое парадоксальное, что /mnt/ramdisk0/papkа обновляется!
>
>mount
>/dev/ram0 on /mnt/ramdisk0 type ext2 (rw)
>
>что-то я не понимаю вообще ничеговозможно с /dev/ram0 какие-то особенности всётаки не совсем настоящее блочное устройство.
дабл
>даблВсе тюнингуют тюнингуют, а вариант того что это касяк самой проги, паталок внутрених алгаритмов (если уж разрабы настолько тупые сто не реализовали нормально что человеку приходилось с ram извращаться) не расматриваеться? "Если отбросить все вероятное, то остаеться только не вероятное - оно и будет ответом", а зря - потому что так скорее всего и есть - если человек пробует разные варианты, но прироста не получает - то и тормазит не ОС, а прога.
>>дабл
>
>Все тюнингуют тюнингуют, а вариант того что это касяк самой проги, паталок
>внутрених алгаритмов (если уж разрабы настолько тупые сто не реализовали нормально
>что человеку приходилось с ram извращаться) не расматриваеться? "Если отбросить все
>вероятное, то остаеться только не вероятное - оно и будет ответом",
>а зря - потому что так скорее всего и есть -
>если человек пробует разные варианты, но прироста не получает - то
>и тормазит не ОС, а прога.Есть такое мнение. Но человек добровольно хочет поизвращаться, вот интересно выдет что полезное или нет.