LINUX.ORG.RU
решено ФорумAdmin

Видео сервер. Отключить кеширование


0

2

Добрый день.

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

На серваке свопа нет за ненадобностью и 4 GB памяти.

Поначалу работы все ок и 98% памяти свободной, но после 8 часов работы умный Linux кеширует практически всю свободную память и оставляет меньше 1% на приложения. Соответственно если запускается какое либо из приложений, то оно вылетает из-за того что памяти нет.

Перерыл весь интернет и ничего умнее не придумал как раз в 10сек скидывать кеш такой командой:

/bin/sync && /bin/echo 3 > /proc/sys/vm/drop_caches

Есть ли возможность принудительно отключить кеширование или снизить коэффициент кеширования до минимума?

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

★★★

Что-то не верится....

Кеш урезается в первую очередь при нехватке памяти для задач. Если памяти нет, то ее кто-то сожрал ( но не кеш ).

Возможно есть утечка памяти. через ps/top можно посмотреть кто все сожрал.

А нет ли какой-нибудь tmpfs в которую что-нибудь постоянно дописывается ?

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

Утечки нет, tmpfs тоже нет. Есть Debian 7

Все приложения регулярно перестартовываются. Поэтому я и заметил, что памяти не хватает, поскольку одно из приложений не смогло перезапуститься.

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

А, свапа нет, последнее тогда без толку, хотя хуже не будет.

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

Бред не бред... давайте посмотрим. Вот начальное состояние. Сейчас запущу процесс без очистки кеша, вечером выдам результаты

:~# free -m
             total       used       free     shared    buffers     cached
Mem:          3862        197       3664          0         55         56
-/+ buffers/cache:         84       3777
Swap:            0          0          0
:~# sysctl vm.swappiness
vm.swappiness = 0
:~$ cat /proc/mounts
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,relatime,size=10240k,nr_inodes=492759,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=395476k,mode=755 0 0
/dev/disk/by-uuid/7feef59c-a355-4ca5-a66b-e6cf4f001b24 / ext4 rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
tmpfs /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=790940k 0 0
rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
/dev/sda2 /video ext3 rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered 0 0
Mrak ★★★
() автор топика
Ответ на: комментарий от Mrak

может стоит попробовать покрутить vm.dirty_bytes и vm.dirty_background_bytes

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

Утечки нет, tmpfs тоже нет.

А это что тогда?

tmpfs /run tmpfs tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=395476k,mode=755 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
tmpfs /run/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=790940k 0 0

Вот как минимум больше гига сюда может уходить. Ладно еще /run, но вот shm запросто используется приложением, которое пишет видео.

Ну и конечно же нужно смотреть выводы free и ps во время ситуации «нехватки» памяти.

nstorm
()

На серваке свопа нет за ненадобностью

не твоё ребячье дело решать, нужен ли он линуксу. Свап сделай и в sysctl добавь vm.swappiness=0

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

не твоё ребячье дело решать, нужен ли он линуксу. Свап сделай и в sysctl добавь vm.swappiness=0

Бред. Молчите, если не знаете, о чем говорите, анонимус.

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

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

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

Ещё можно аватарку поставить и звёздочки рядом с ней нафлудить

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

Признак «ума» - ваш совет включать своп при любом случае и ставить vm.swappiness в 0, а также глупая агрессия и невозможность уловить смысл, что «анонимус» в том контексте было обращение.

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

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

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

Искрометный троллинг на лоре, всё понятно.

ТС, ждем данных во время возникновения проблемы. Но дело явно не в кеше ядра Linux. Скорее всего какие-то процессы сбора или конвертации видео ваши и пожирают оную.

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

троллинг

вы же на самом деле знаете значение этого слова, а тут употребляете его не к месту с каким-то особым умыслом?

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

Как обещал, выдаю инфу:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          3862       3732        129          0         28       3412
-/+ buffers/cache:        291       3570
Swap:            0          0          0
:~$ df -h
Файловая система                                       Размер Использовано  Дост Использовано% Cмонтировано в
rootfs                                                   9,2G         1,6G  7,2G           19% /
udev                                                      10M            0   10M            0% /dev
tmpfs                                                    387M         420K  386M            1% /run
/dev/disk/by-uuid/7feef59c-a355-4ca5-a66b-e6cf4f001b24   9,2G         1,6G  7,2G           19% /
tmpfs                                                    5,0M            0  5,0M            0% /run/lock
tmpfs                                                    773M            0  773M            0% /run/shm
/dev/sda2                                                908G          29G  834G            4% /video

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

Ладно, беру свои слова обратно... может и linuxatemyram.com, но это не вызывает Out Of Memory для других приложений.

Единственно все таки не понятно насколько нужно кеширование и забивание оперативной памяти для видео сервера. Т.е. по сути я должен получить видео с камер и сразу складывать его на жесткий диск. Так же при конвертации видео данный кеш бесполезен, поскольку он забит не тем видео, которое я сейчас конвертирую - или тут 4.2...?

Ваше мнение: насколько полезно/вредно для cpu и hdd если сбрасывать кеш раз 10 сек, например?

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

Ваше мнение: насколько полезно/вредно для cpu и hdd если сбрасывать кеш раз 10 сек, например?

Вредно для производительности, т.к. бесполезные операции. Не нужно сбрасывать кеши. Вы же видели linuxatemyram.com. Память свободна, ну и что, что там кеш лежит. Для перезаписи памяти, не надо её предварительно чистить. Хранимые данные в памяти, нужные или нет, никак не мешают. Регенериуются всё равно все ячейки.

А вот тут вы ошибаетесь:

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

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

Короче не смотрите на значения памяти с буферами и кешем никогда и не сбрасывайте кеш. Нет в этом нужды.

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

Единственно все таки не понятно насколько нужно кеширование и забивание оперативной памяти для видео сервера. Т.е. по сути я должен получить видео с камер и сразу складывать его на жесткий диск.

Если файловая система смонтирована в режиме async (это по дефолту), то данные сбрасываются на диск не сразу, а пачками, для оптимизации случайного I/O в последовательное. Как часто ядро сбрасывает данные настраивается в sysctl (vm_* и подобные параметры). Так что за тебя уже подумали, не парься.

Если память понадобится - кеш будет очищен.

Ваше мнение: насколько полезно/вредно для cpu и hdd если сбрасывать кеш раз 10 сек, например?

Не надо плодить лишних сущностей, оставь всё по умолчанию. Кеш сбрасывают для снижения его влияния на бенчмарки и т.п. В остальных случаях - вредно.

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