URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 86804
[ Назад ]

Исходное сообщение
"tmpfs"

Отправлено Rootpassword , 05-Окт-09 14:53 
Задача. Некая папка содержит данные, с чтением - записью диски не справляются. совсем. оптимизации не подлежит, мопед не мой :)

Решение-вынести папку в память, бэкапы+восстановление после ребута.

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) проще не сделать?


Содержание

Сообщения в этом обсуждении
"tmpfs"
Отправлено Rootpassword , 05-Окт-09 16:01 
однако, выполнение пункта первого не уменьшило скорость чтения, ни записи, и нагрузка не упала.
что не так?

"tmpfs"
Отправлено PavelR , 05-Окт-09 16:30 
>однако, выполнение пункта первого не уменьшило скорость чтения, ни записи, и нагрузка
>не упала.
>что не так?

Вы действительно хотели уменьшить скорость чтения / записи ?


"tmpfs"
Отправлено Rootpassword , 05-Окт-09 16:43 
>>однако, выполнение пункта первого не уменьшило скорость чтения, ни записи, и нагрузка
>>не упала.
>>что не так?
>
>Вы действительно хотели уменьшить скорость чтения / записи ?

Нет, но это было бы побочным эффектом, доставать/записывать данные из памяти легче и быстрее, чем с диска. Чего не наблюдается.

Моя цель-данные в papka убрать в память, потеря последних X минут не критична, а так система сильно перегружена из-за слишком большого кол-ва операции записи некритичных данных.


"tmpfs"
Отправлено empty , 05-Окт-09 16:42 
>[оверквотинг удален]
>убрали ее в память
>2) crontab -e
>небольшой шелл скрипт, копирует всю /home/www/domain/public/papka в /home/www/domain/public/papka-backup каждые Х минут.
>
>3) скрипт в автозагрузке, автомонтирование+ шелл скрипт обратно из бэкапа достает файлы.
>
>
>вопросы.
>1) все верно?
>2) проще не сделать?

RAID0/stripe?


"tmpfs"
Отправлено Rootpassword , 05-Окт-09 16:46 

>RAID0/stripe?

нет, программно надо. Там и так рейд, тупо еще дисков вставить-не вариант.


"tmpfs"
Отправлено empty , 05-Окт-09 17:06 
>
>>RAID0/stripe?
>
>нет, программно надо. Там и так рейд, тупо еще дисков вставить-не вариант.
>

ИМХО, вам вообще тогда нужно от FS отвязываться. Если идет такое количество апдейтов, что ложится RAID, то пора задумываться о переводе на DB.


"tmpfs"
Отправлено Rootpassword , 05-Окт-09 17:10 
>
>ИМХО, вам вообще тогда нужно от FS отвязываться. Если идет такое количество
>апдейтов, что ложится RAID, то пора задумываться о переводе на DB.
>

Да я бы и рад, но это не мое, софт закрытый и тд. mysql таблица в памяти отлично бы подошла, но нельзя. Работаем с чем есть.


"tmpfs"
Отправлено Rootpassword , 08-Окт-09 12:13 
может проще делать рам-диск и туда симлинки ln просавить papka->рам-диск

?


"tmpfs"
Отправлено ze6ra , 08-Окт-09 14:08 
>может проще делать рам-диск и туда симлинки ln просавить papka->рам-диск
>
>?

tmpfs как раз и есть более удобный вариант ram-диска.


"tmpfs"
Отправлено Rootpassword , 08-Окт-09 14:20 
>>может проще делать рам-диск и туда симлинки ln просавить papka->рам-диск
>>
>>?
>
>tmpfs как раз и есть более удобный вариант ram-диска.

да, я знаю. Но не единственный. Вот кто-нибудь пояснит мне, я papka  верно убрал в память??


"tmpfs"
Отправлено ze6ra , 08-Окт-09 14:42 
>>>может проще делать рам-диск и туда симлинки ln просавить papka->рам-диск
>>>
>>>?
>>
>>tmpfs как раз и есть более удобный вариант ram-диска.
>
>да, я знаю. Но не единственный. Вот кто-нибудь пояснит мне, я papka
> верно убрал в память??

да кстати tmpfs может выгружаться в swap, а ramfs нет. Может лучше будет ипользовать ramfs.

По поводу пояснений: всё что буде записано в /home/www/domain/public/papka будет находится в памяти, том числе и  /home/www/domain/public/papka-backup, так что делать в него резервирование немного бесмысленно (если конечно нигде нет опечаток).


"tmpfs"
Отправлено Rootpassword , 08-Окт-09 14:47 
>[оверквотинг удален]
>>
>>да, я знаю. Но не единственный. Вот кто-нибудь пояснит мне, я papka
>> верно убрал в память??
>
>да кстати tmpfs может выгружаться в swap, а ramfs нет. Может лучше
>будет ипользовать ramfs.
>
>По поводу пояснений: всё что буде записано в /home/www/domain/public/papka будет находится в
>памяти, том числе и  /home/www/domain/public/papka-backup, так что делать в него
>резервирование немного бесмысленно (если конечно нигде нет опечаток).

система 100% не свопится, так что без разницы. Я тоже об этом подумал в первую очередь :)

опечаток нету, вы немного неверно прочитали наверное,  papka-backup и papka -две директории рядом, а не директория и поддиректория :)


"tmpfs"
Отправлено ze6ra , 08-Окт-09 15:16 
>опечаток нету, вы немного неверно прочитали наверное,  papka-backup и papka -две
>директории рядом, а не директория и поддиректория :)

действительно глаз замылился. Тогда всё правильно, по крайней мере с переносом в память. Может нагрузка на диск от другого.


"tmpfs"
Отправлено Rootpassword , 08-Окт-09 15:54 
>>опечаток нету, вы немного неверно прочитали наверное,  papka-backup и papka -две
>>директории рядом, а не директория и поддиректория :)
>
>действительно глаз замылился. Тогда всё правильно, по крайней мере с переносом в
>память. Может нагрузка на диск от другого.

Нет. в софте видна скорость доступа к данным на чтение-запись, она не изменилась. Что невозможно, так как из памяти данные достаются-пишутся существенно быстрее, чем с диска.
Я что-то напутал.
Не могу понять, почему эта команда не убирает данные в память.


"tmpfs"
Отправлено ze6ra , 08-Окт-09 16:43 
>[оверквотинг удален]
>>>директории рядом, а не директория и поддиректория :)
>>
>>действительно глаз замылился. Тогда всё правильно, по крайней мере с переносом в
>>память. Может нагрузка на диск от другого.
>
>Нет. в софте видна скорость доступа к данным на чтение-запись, она не
>изменилась. Что невозможно, так как из памяти данные достаются-пишутся существенно быстрее,
>чем с диска.
>Я что-то напутал.
>Не могу понять, почему эта команда не убирает данные в память.

В теории оно так, а на практике как обычно, если файлы и так в дисковом кеше сидят в памяти (tmpfs кстати тоже сделана на основе кода дискового кеша только страницы не очищаются) то скорость чтения не вырастет. Скорость записи тоже ещё под вопросом. Единственное что tmpfs
даст это то что при чтение записи в эту папку с диском работать система не будет (хотя swap не исключается). Команда действительно данные в память не убирает, она только подключает папку (точку монтирования) и все что операции и читения и записи из папки будут только только с памятью без участия дисковой подсистемы.
tmpfs, ramfs придумали как-раз чтоб избавится от ram-дисков при работе с которыми задействуется драйвер fs плюс ещё всякие подсистемы тотже дисковый кеш (получается что в пямяти кешируются данные который потом буду зброшены снова в память) и т.д.
Мали что в софте видно желательно глянуть чем система вообще занимается по iotop, top и т.д.


"tmpfs"
Отправлено Rootpassword , 08-Окт-09 16:59 
>[оверквотинг удален]
>работать система не будет (хотя swap не исключается). Команда действительно данные
>в память не убирает, она только подключает папку (точку монтирования) и
>все что операции и читения и записи из папки будут только
>только с памятью без участия дисковой подсистемы.
>tmpfs, ramfs придумали как-раз чтоб избавится от ram-дисков при работе с которыми
>задействуется драйвер fs плюс ещё всякие подсистемы тотже дисковый кеш (получается
>что в пямяти кешируются данные который потом буду зброшены снова в
>память) и т.д.
>Мали что в софте видно желательно глянуть чем система вообще занимается по
>iotop, top и т.д.

Спасибо за развернутый ответ.
Узкое место именно запись, и видно по системе, что именно запись в papka сильно грузит сервер. Я отключал вообще запись - системе резко хорошело, но без записи нельзя.


http://www.linuxfocus.org/Russian/July2001/article210.shtml

попробую как тут описано+сделаю симлинк.

размер papka-мегов 100-200, наверное.


"tmpfs"
Отправлено ze6ra , 08-Окт-09 17:13 

>http://www.linuxfocus.org/Russian/July2001/article210.shtml
>

собственно там и написано что я писал выше.
>попробую как тут описано+сделаю симлинк.

Теоритически ramdisk на ramfs(tmpfs) быстрее ramdisk как блочное устройство.
Но возможно теория и практика тут тоже не совпадёт.
Не совсем догоняю чем могут помочь симлинки в скорости доступа или записи.
>
>размер papka-мегов 100-200, наверное.


"tmpfs"
Отправлено Rootpassword , 08-Окт-09 21:15 

>Теоритически ramdisk на ramfs(tmpfs) быстрее ramdisk как блочное устройство.
>Но возможно теория и практика тут тоже не совпадёт.
>Не совсем догоняю чем могут помочь симлинки в скорости доступа или записи.
>

а симлинки просто так, структура будет понятнее и красивее  :)


"tmpfs"
Отправлено Rootpassword , 15-Окт-09 17:40 
>[оверквотинг удален]
>
>собственно там и написано что я писал выше.
>>попробую как тут описано+сделаю симлинк.
>
>Теоритически 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 сидит в ОС?


"tmpfs"
Отправлено ze6ra , 15-Окт-09 19:36 
жет кто поправит.
>
>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"
Отправлено Rootpassword , 15-Окт-09 21:30 
>Ага.

а варианты быстрее есть?


"tmpfs"
Отправлено ze6ra , 15-Окт-09 21:33 
>>Ага.
>
>а варианты быстрее есть?

быстрее чем память?


"tmpfs"
Отправлено Rootpassword , 15-Окт-09 21:50 
>>>Ага.
>>
>>а варианты быстрее есть?
>
>быстрее чем память?

ну tmpfs, ramfs, /dev/ram

есть еще что-то? От версии ядра зависит? Я уже не знаю-делал по разному, и не выходит каменный цветок. Никак.


"tmpfs"
Отправлено ze6ra , 15-Окт-09 21:57 
>>>>Ага.
>>>
>>>а варианты быстрее есть?
>>
>>быстрее чем память?
>
>ну tmpfs, ramfs, /dev/ram
>
>есть еще что-то? От версии ядра зависит? Я уже не знаю-делал по
>разному, и не выходит каменный цветок. Никак.

tmpfs вас не устроил не смотря что теоретически он быстрее. Как уже писал выше если работа с файлами идёт постоянно то при достаточном объёме памяти они и так в памяти. Так что заметного выйгрыша в скорости в чтения получится и не должно было, запись по идее тоже поскольку сначала пишется в кэш. Если нагрузка была на диск и после переноса в память она не упала то может надо искать другую причину или папку которую не пернесли в память. После перенося в память дисковый ввод-вывод упал?


"tmpfs"
Отправлено Rootpassword , 15-Окт-09 22:00 
чем замерять на длительном интервале? cacti?
визуально-не особо.

"tmpfs"
Отправлено ze6ra , 15-Окт-09 22:27 
>чем замерять на длительном интервале? cacti?
>визуально-не особо.

если cacti стоит то да, а так с этой программой так сразу не разобраться, ради одного параметра  можно и непосредственно утилитами из пакета rrdtools пользоваться. Или агента от системы мониторига поставить от тогоже zabbix, а сам сервер мониторинга на отдельной машине поставить, настроить можно относительно быстро. Можно ещё вывод vmstat перенаправить в файл на время а потом загнать потом на график. Но выше вы писали что при прекращении записи вашей хитрой программы сервер резко разгружался, а тут если резкой разгрузки не произошло то причина вероятно в другом. смотрите на вывод vmstat до и после задно и увидте как пошла рабода с /dev/ram0.


"tmpfs"
Отправлено Rootpassword , 15-Окт-09 22:35 
>[оверквотинг удален]
>не разобраться, ради одного параметра  можно и непосредственно утилитами из
>пакета 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



"tmpfs"
Отправлено Rootpassword , 15-Окт-09 22:43 
>[оверквотинг удален]
> 0       0  
>   0      0
>
>
>оппа. ноль операции.
>и где я затупил, интересно.
>
>/dev/ram0            
>     7931      
>2248      5683  29% /mnt/ramdisk0

самое парадоксальное, что /mnt/ramdisk0/papkа обновляется!

mount
/dev/ram0 on /mnt/ramdisk0 type ext2 (rw)

что-то я не понимаю вообще ничего


"tmpfs"
Отправлено ze6ra , 15-Окт-09 23:19 
>[оверквотинг удален]
>>/dev/ram0            
>>     7931      
>>2248      5683  29% /mnt/ramdisk0
>
>самое парадоксальное, что /mnt/ramdisk0/papkа обновляется!
>
>mount
>/dev/ram0 on /mnt/ramdisk0 type ext2 (rw)
>
>что-то я не понимаю вообще ничего

возможно с /dev/ram0 какие-то особенности всётаки не совсем настоящее блочное устройство.


"tmpfs"
Отправлено Rootpassword , 08-Окт-09 16:23 
дабл

"tmpfs"
Отправлено Koba LTD , 15-Окт-09 23:35 
>дабл

Все тюнингуют тюнингуют, а вариант того что это касяк самой проги, паталок внутрених алгаритмов (если уж разрабы настолько тупые сто не реализовали нормально что человеку приходилось с ram извращаться) не расматриваеться? "Если отбросить все вероятное, то остаеться только не вероятное - оно и будет ответом", а зря - потому что так скорее всего и есть - если человек пробует разные варианты, но прироста не получает - то и тормазит не ОС, а прога.


"tmpfs"
Отправлено ze6ra , 15-Окт-09 23:43 
>>дабл
>
>Все тюнингуют тюнингуют, а вариант того что это касяк самой проги, паталок
>внутрених алгаритмов (если уж разрабы настолько тупые сто не реализовали нормально
>что человеку приходилось с ram извращаться) не расматриваеться? "Если отбросить все
>вероятное, то остаеться только не вероятное - оно и будет ответом",
>а зря - потому что так скорее всего и есть -
>если человек пробует разные варианты, но прироста не получает - то
>и тормазит не ОС, а прога.

Есть такое мнение. Но человек добровольно хочет поизвращаться, вот интересно выдет что полезное или нет.