LINUX.ORG.RU
ФорумTalks

[cache][вещества] возможно ли настроить кэш?

 ,


0

0

возможно ли запретить кэшировать мусор некого конкретного приложения?
например кэш торрентов - оно мне ни разу не нужно - как его «забанить»?
и возможно ли?

★★★★

Последнее исправление: megabaks (всего исправлений: 1)
Ответ на: комментарий от megabaks

у меня работает c dd и на чтение и на запись. Проверь плиз на нём и на этом разделе как-то так:

echo 3 > /proc/sys/vm/drop_caches
LD_PRELOAD=./open.so dd if=/dev/zero of=/var/ftp/stuff/test_file bs=1M
rm /var/ftp/stuff/test_file

А на соседней консоле `watch free'

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

у мну коньки мониторят :)
короче при записи всё зашибись
а вот если через cp (естессно с LD_PRELOAD=./open.so) т.е. при чтении начинает пожирать кэш

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

покажи пожалуйста вывод при cp. Думаю там проблемы не со чтением а с записью и у мну вообще cp не заработал.

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

вот - весь тест-выхлоп

desktop testio # echo 3 > /proc/sys/vm/drop_caches 
desktop testio # free
             total       used       free     shared    buffers     cached
Mem:       2073868    1098600     975268          0      13376     138544
-/+ buffers/cache:     946680    1127188
Swap:      1052188          0    1052188
desktop testio # LD_PRELOAD=./open.so dd if=/dev/zero of=/var/ftp/stuff/test_file bs=1M
megabaks preved!!!
*** initing wrapper... done
*** opening /dev/zero ok
*** O_DIRECT on /var/ftp/stuff/test_file ok
^C2121+0 записей считано
2121+0 записей написано
 скопировано 2224029696 байт (2,2 GB), 34,1165 c, 65,2 MB/c

desktop testio # free
             total       used       free     shared    buffers     cached
Mem:       2073868    1100568     973300          0      15616     138792
-/+ buffers/cache:     946160    1127708
Swap:      1052188          0    1052188
desktop testio # LD_PRELOAD=./open.so cp /var/ftp/stuff/test_file test_file
megabaks preved!!!
*** initing wrapper... done
*** O_DIRECT on /var/ftp/stuff/test_file ok
*** opening test_file ok
desktop testio # free
             total       used       free     shared    buffers     cached
Mem:       2073868    2017600      56268          0      18056    1039952
-/+ buffers/cache:     959592    1114276
Swap:      1052188          0    1052188
desktop testio #

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

Ай! полные пути указывай, либа O_DIRECT врубает только для файлов с префиксом /var/ftp/stuff/

Чую после этого cp перестанет работать :(

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

да работает

desktop testio # free
             total       used       free     shared    buffers     cached
Mem:       2073868    1076132     997736          0      13408      54968
-/+ buffers/cache:    1007756    1066112
Swap:      1052188        580    1051608
desktop testio # LD_PRELOAD=./open.so cp /var/ftp/stuff/test_file /var/ftp/stuff/test_file2
megabaks preved!!!
*** initing wrapper... done
*** O_DIRECT on /var/ftp/stuff/test_file ok
*** O_DIRECT on /var/ftp/stuff/test_file2 ok
desktop testio # free
             total       used       free     shared    buffers     cached
Mem:       2073868    1099008     974860          0      17920      73564
-/+ buffers/cache:    1007524    1066344
Swap:      1052188        580    1051608
desktop testio # ls -l /var/ftp/stuff/test_file*
-rw-r--r-- 1 root root 2224029696 Июл 29 13:55 /var/ftp/stuff/test_file
-rw-r--r-- 1 root root 2224029696 Июл 29 14:08 /var/ftp/stuff/test_file2
desktop testio # 

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

лана, доработаю так чтобы у либы конфиг был и там можно было инклудить и эксклудить папки

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

Во, репу сделал, теперь там и конфиг с инклюдами и эксклюдами путей можно сделать, путь до конфига /etc/opendirect.cfg или же через OPEN_DIRECT_CFG в окружении можно путь указать.

https://bitbucket.org/true_admin/open_direct/overview

Ну терь должно работать :)

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

хм...

 LD_PRELOAD=./open.so cp /var/ftp/stuff/test_file /home/megabaks/test_file
[O_DIRECT DEBUG] initing wrapper...
[O_DIRECT DEBUG] opening "/etc/config.cfg"
[O_DIRECT DEBUG] init done
[O_DIRECT DEBUG] real path for file "/var/ftp/stuff/test_file" is "/var/ftp/stuff/test_file"
[O_DIRECT DEBUG] file "/var/ftp/stuff/test_file" is included by pattern "/var/ftp/stuff/" open ok
[O_DIRECT DEBUG] real path for file "/home/megabaks/test_file" is "(null)"
Ошибка сегментирования


desktop open_direct #  LD_PRELOAD=./open.so cp /var/ftp/stuff/test_file test_file
[O_DIRECT DEBUG] initing wrapper...
[O_DIRECT DEBUG] opening "/etc/config.cfg"
[O_DIRECT DEBUG] init done
[O_DIRECT DEBUG] real path for file "/var/ftp/stuff/test_file" is "/var/ftp/stuff/test_file"
[O_DIRECT DEBUG] file "/var/ftp/stuff/test_file" is included by pattern "/var/ftp/stuff/" open ok
[O_DIRECT DEBUG] real path for file "test_file" is "(null)"
Ошибка сегментирования


 LD_PRELOAD=./open.so cp /var/ftp/stuff/test_file /home/megabaks/open_direct/
[O_DIRECT DEBUG] initing wrapper...
[O_DIRECT DEBUG] opening "/etc/config.cfg"
[O_DIRECT DEBUG] init done
[O_DIRECT DEBUG] real path for file "/var/ftp/stuff/test_file" is "/var/ftp/stuff/test_file"
[O_DIRECT DEBUG] file "/var/ftp/stuff/test_file" is included by pattern "/var/ftp/stuff/" open ok
[O_DIRECT DEBUG] real path for file "/home/megabaks/open_direct/test_file" is "(null)"
Ошибка сегментирования
кстати конфиг надо переименовать - а то либа ищет одно, а он совсем другое :)

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

в сырцах поправил название конфига, теперь оно по дефолту /etc/opendirect.cfg.

Да, теперь оно собирается коммандой make :). Хотя можно и по-старинке.

Теперь по поводу сегфолта: это потому что cp пытается открыть оба файла, так вот файл назначения не существовал и у мну там была в коде тупая ошибка на эту тему. Попробуй щас. Только с cp в существующий файл это точно работать не будет, O_DIRECT не работает с O_TRUNC, по крайней мере для существующих файлов.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin
LD_PRELOAD=./open.so dd if=/dev/zero of=/var/ftp/stuff/test_file bs=1M
[O_DIRECT DEBUG] initing wrapper...
[O_DIRECT DEBUG] opening "/etc/opendirect.cfg"
[O_DIRECT DEBUG] init done
[O_DIRECT DEBUG] ****** opening "/dev/zero" with flags 0
[O_DIRECT DEBUG] real path for file "/dev/zero" is "/dev/zero"
[O_DIRECT DEBUG] file "/dev/zero" excluded by pattern "/dev/", ignoring it.
[O_DIRECT DEBUG] open ok
[O_DIRECT DEBUG] ****** opening "/var/ftp/stuff/test_file" with flags 577
[O_DIRECT DEBUG] O_TRUNC is not supported for O_DIRECT
[O_DIRECT DEBUG] open ok
^C1860+0 записей считано
1860+0 записей написано
 скопировано 1950351360 байт (2,0 GB), 36,632 c, 53,2 MB/c

независимо от наличия test_file

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

ну тут вообще O_DIRECT не задействован :).

1) Для /dev/zero он не поддерживается, поэтому он в эксклюдах

2) dd выходной файл открывает с O_TRUNC, такой режим ведро не поддерживает. Сделаю сообщение об ошибке яснее.

на торрентах потести :).

Вообще, щас меня осенила тупая идея. Пихать O_DIRECT, если не прокатило, то fallback без него. А я парюсь с кучей параметров...

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

на торрентах беда

Warning: QIODevice::write: Called with maxSize < 0
Warning: QIODevice::write: Called with maxSize < 0
Warning: QIODevice::write: Called with maxSize < 0
Warning: QIODevice::write: Called with maxSize < 0
так ругается на скрытые файлы - торрент выдаёт, что не может прочитать торрент файл и соответственно не работает
если в exclude /home/megabaks/.kde4/ то кторрент отжирает пол проца и
<unknown program name>(21884)/: Communication problem with  "ktorrent" , it probably crashed. 
Error message was:  "org.freedesktop.DBus.Error.NoReply" : " "Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken." " 

megabaks ★★★★
() автор топика
Ответ на: комментарий от megabaks
[O_DIRECT DEBUG] ****** opening "/var/ftp/stuff/The.Losers.2010.BDRip.x264.Rus.Eng.Sub_[tRuAVC].mkv" with flags 524354
[O_DIRECT DEBUG] real path for file "/var/ftp/stuff/The.Losers.2010.BDRip.x264.Rus.Eng.Sub_[tRuAVC].mkv" is "/var/ftp/stuff/The.Losers.2010.BDRip.x264.Rus.Eng.Sub_[tRuAVC].mkv"
ktorrent: [O_DIRECT ERRRR] stat() on "/var/ftp/stuff/The.Losers.2010.BDRip.x264.Rus.Eng.Sub_[tRuAVC].mkv" failed(excluding this file): Значение слишком велико для такого типа данных
megabaks ★★★★
() автор топика
Ответ на: комментарий от anon_666

ага - раньше после простоя комп вёл себя как-будто он в свопе, сейчас нормально
завтра посмотрю ещё - как раз на работу опять выхожу - вот ночь и весь день он будет только торренты да DC раздавать - будем поглядеть :)

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

>Вообще, щас меня осенила тупая идея. Пихать O_DIRECT, если не прокатило, то fallback без него. А я парюсь с кучей параметров...
будешь делать? :)

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

жутко устал за эти дни. Если востребовано то сделаю через пару дней. Эх, вот бы с народом поделиться исходниками, так ведь какашками закидают. У меня пока и в исходниках есть некрасивое место и вообще сама идея народ повергает в шок. Хотя, вон на главной новость о том что O_DIRECT у btrfs появился :)

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

короче потестил
пришёл с работы включил моник...а он ведёт себя так, как будто я сходил покурить, а не на весь день на работу )

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

у мну просто щас транк поломан напрочь. Я в выходные приведу всё в божеский вид и залью уже релиз. А так все изменения у меня в локальном репозитории.

Кстати, bitbucket рулез. Регистрация в два клика, юзать очень просто и удобно. Ребята молодцы.

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

Thu Aug 5 15:37:49 2010: Error happened during parsing : Недопустимая лексема: 65
это в логах торрента
в списке на многих пишет ошибка

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

и выдаёт такое на торренты где много файлов и дир - например дискографии

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

А можешь запустить с локалью C, а то я не понимаю что это за сообщение.

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

вот мат на ангельском

Thu Aug 5 23:50:33 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:34 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:36 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:36 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:38 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:40 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:42 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:48 2010: Error happened during parsing : Illegal token: 101
Thu Aug 5 23:50:50 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:52 2010: Error happened during parsing : Illegal token: -128
Thu Aug 5 23:50:52 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:53 2010: Error happened during parsing : Illegal token: -128
Thu Aug 5 23:50:54 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:55 2010: Error happened during parsing : Illegal token: 65
Thu Aug 5 23:50:56 2010: Error happened during parsing : Illegal token: -128
Thu Aug 5 23:50:57 2010: Error happened during parsing : Illegal token: 65
это торрент ругается

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