Discussion:
скорость по гигабиту
(слишком старое сообщение для ответа)
Victor Sudakov
2009-11-09 14:14:53 UTC
Permalink
Коллеги,

[***@db02-sibptus ~] time dd if=/net/db01-sibptus/d01/bigfile.bin
of=/dev/null bs=1048576
5120+0 records in
5120+0 records out
0.02u 13.91s 0:46.38 30.0%

Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
быть?
--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/***@fidonet http://vas.tomsk.ru/
Dmitry Miloserdov
2009-11-09 19:46:36 UTC
Permalink
Post by Victor Sudakov
of=/dev/null bs=1048576
5120+0 records in
5120+0 records out
0.02u 13.91s 0:46.38 30.0%
Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
быть?
Hормальная цифра. Почти идеал.
Теоретический максимум 113Mib/s
Victor Sudakov
2009-11-10 08:04:18 UTC
Permalink
Post by Dmitry Miloserdov
Post by Victor Sudakov
of=/dev/null bs=1048576
5120+0 records in
5120+0 records out
0.02u 13.91s 0:46.38 30.0%
Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
быть?
Hормальная цифра. Почти идеал.
Теоретический максимум 113Mib/s
Что есть Mib? Это не мегабайты?
--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/***@fidonet http://vas.tomsk.ru/
Dmitry Miloserdov
2009-11-10 13:54:28 UTC
Permalink
Post by Victor Sudakov
Post by Dmitry Miloserdov
Post by Victor Sudakov
of=/dev/null bs=1048576
5120+0 records in
5120+0 records out
0.02u 13.91s 0:46.38 30.0%
Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
быть?
Hормальная цифра. Почти идеал.
Теоретический максимум 113Mib/s
Что есть Mib? Это не мегабайты?
MiB = Мебибайт = 2^20 байт
MB = Мегабайт = 10^6 байт
Andrew Lutov
2009-11-11 05:21:20 UTC
Permalink
Hello, Dmitry!

DM> MB = Мегабайт = 10^6 байт

Это что, в связи с последним постановлением партии что ль?
--
А5 увидимся е2 ли
Dmitry Miloserdov
2009-11-11 17:14:32 UTC
Permalink
Post by Andrew Lutov
DM> MB = Мегабайт = 10^6 байт
Это что, в связи с последним постановлением партии что ль?
Hу не последнее наверное. 10 лет ему уже. IEC-60027-2.
А Вы попрежнему ищете в терабайтном винте недостающие 100гиг?
Andrew Lutov
2009-11-12 06:36:19 UTC
Permalink
Hello, Dmitry!

DM>>> MB = Мегабайт = 10^6 байт
??>> Это что, в связи с последним постановлением партии что ль?

DM> Hу не последнее наверное. 10 лет ему уже. IEC-60027-2.
DM> А Вы попрежнему ищете в терабайтном винте недостающие 100гиг?

В винтах давно уже не, но вот в скоростях хотелось бы все же как было.
--
А5 увидимся е2 ли
Dmitry Miloserdov
2009-11-12 12:10:03 UTC
Permalink
Post by Andrew Lutov
DM>>> MB = Мегабайт = 10^6 байт
??>> Это что, в связи с последним постановлением партии что ль?
DM> Hу не последнее наверное. 10 лет ему уже. IEC-60027-2.
DM> А Вы попрежнему ищете в терабайтном винте недостающие 100гиг?
В винтах давно уже не, но вот в скоростях хотелось бы все же как было.
В скоростях всегда так было.
Скорости они к частоте привязаны были,
а 125MHz = 125 000 000 Hz, независимо от того
цифровые данные ты передаешь или нет, соответственно
в гигабите всегда было 1 000 000 000 бит.
"Hеправильные" килобайты удобно использовать
для ограничений связанных с адресацией -
типа размер страницы памяти, размер блока fs или
базы данных.
Serguei E. Leontiev
2009-11-12 16:31:39 UTC
Permalink
Здравствуй Andrew,

Andrew Lutov -> Dmitry Miloserdov @ чт 12-ноя-09 09:36 MSK:

DM>>>> MB = Мегабайт = 10^6 байт
AL> ??>> Это что, в связи с последним постановлением партии что ль?
DM>> Hу не последнее наверное. 10 лет ему уже. IEC-60027-2.
DM>> А Вы попрежнему ищете в терабайтном винте недостающие 100гиг?
AL> В винтах давно уже не, но вот в скоростях хотелось бы все же как было.
:(
Жаль разрушать иллюзии, но у связистов все их мегагерцы, мегабоды и
мегабиты всегда были одинаковыми, даже в Африке (т.е. в системе единиц
СИ, 10^6).
:(
--
Успехов, Сергей Леонтьев. E-mail: ***@CryptoPro.ru <http://www.cryptopro.ru>
Andrew Lutov
2009-11-13 05:28:29 UTC
Permalink
Hello, Serguei!
You wrote to Andrew Lutov on Thu, 12 Nov 2009 19:31:39 +0500:

SEL> Andrew Lutov -> Dmitry Miloserdov @ чт 12-ноя-09 09:36 MSK:

DM>>>>> MB = Мегабайт = 10^6 байт
AL>> ??>> Это что, в связи с последним постановлением партии что ль?
DM>>> Hу не последнее наверное. 10 лет ему уже. IEC-60027-2.
DM>>> А Вы попрежнему ищете в терабайтном винте недостающие 100гиг?
AL>> В винтах давно уже не, но вот в скоростях хотелось бы все же как было.
SEL> :(
SEL> Жаль разрушать иллюзии, но у связистов все их мегагерцы, мегабоды и
SEL> мегабиты всегда были одинаковыми, даже в Африке (т.е. в системе единиц
SEL> СИ, 10^6).
SEL> :(

Эээ... Hеудачно я выразился.
Про 10/100/1000 Мбит/с и так все понятно.
Тут я про объем переданных данных. Его как-то мерять "по-новому" печально.
Alexander Gottlieb
2009-11-10 08:11:06 UTC
Permalink
Hail there Victor!

Mon, 09 Nov 2009 at 12:14 GMT Victor Sudakov wrote:

VS> [***@db02-sibptus ~] time dd if=/net/db01-sibptus/d01/bigfile.bin
VS> of=/dev/null bs=1048576
VS> 5120+0 records in
VS> 5120+0 records out
VS> 0.02u 13.91s 0:46.38 30.0%
VS>
VS> Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
VS> быть?

А /net/db01-sibptus/d01 как подмонтирован? NFS?

А то у меня чего-то гигабит совсем плох. :-( Видимо в коммутаторах дело...
--
WBR, Alexander B. Gottlieb, mailto:***@ai.usurt.ru
ICQ: 13043204 / Jabber: ***@jabber.usurt.ru
-|- -|-
Victor Sudakov
2009-11-10 08:01:46 UTC
Permalink
Post by Alexander Gottlieb
VS> of=/dev/null bs=1048576
VS> 5120+0 records in
VS> 5120+0 records out
VS> 0.02u 13.91s 0:46.38 30.0%
VS>
VS> Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
VS> быть?
А /net/db01-sibptus/d01 как подмонтирован? NFS?
Да. Впрочем по FTP скорость примерно такая же.
Post by Alexander Gottlieb
А то у меня чего-то гигабит совсем плох. :-( Видимо в коммутаторах дело...
У меня оба db02 и db01 воткнуты в WS-C2960G-24TC-L
--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/***@fidonet http://vas.tomsk.ru/
Alexander Gottlieb
2009-11-11 10:47:14 UTC
Permalink
Hail there Victor!
Post by Alexander Gottlieb
А то у меня чего-то гигабит совсем плох. :-( Видимо в коммутаторах дело...
VS> У меня оба db02 и db01 воткнуты в WS-C2960G-24TC-L

Блин... У меня в такую же воткнуто. Причем аж двумя портами с LACP
агрегированием. Показания вообще даже близко не такие:

# time dd if=/mnt/sol-10-u8-ga-sparc-dvd.iso of=/dev/null bs=1048576
2583+1 records in
2583+1 records out

real 1m10.570s
user 0m0.035s
sys 0m11.591s

Примерно 35 мб/сек получается :-(
--
WBR, Alexander B. Gottlieb, mailto:***@ai.usurt.ru
ICQ: 13043204 / Jabber: ***@jabber.usurt.ru
-|- -|-
Victor Sudakov
2009-11-11 17:19:05 UTC
Permalink
Post by Alexander Gottlieb
Post by Alexander Gottlieb
А то у меня чего-то гигабит совсем плох. :-( Видимо в коммутаторах дело...
VS> У меня оба db02 и db01 воткнуты в WS-C2960G-24TC-L
Блин... У меня в такую же воткнуто. Причем аж двумя портами с LACP
# time dd if=/mnt/sol-10-u8-ga-sparc-dvd.iso of=/dev/null bs=1048576
2583+1 records in
2583+1 records out
real 1m10.570s
user 0m0.035s
sys 0m11.591s
Примерно 35 мб/сек получается :-(
У меня на винде или фре от 30 до 50 Мб/сек получается. Поэтому когда
увидел результат между двумя солярками (причем это не спарки, а HP
ProLiant), сам обалдел.

Всё это через обычную патч-панель и обычные noname пачкорды.
--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/***@fidonet http://vas.tomsk.ru/
Ilya Kulagin
2009-11-10 09:28:46 UTC
Permalink
Tue Nov 10 2009 11:11, Alexander Gottlieb wrote to Victor Sudakov:

AG> А то у меня чего-то гигабит совсем плох. :-( Видимо в коммутаторах
AG> дело...

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

/kiv
Alexander Gottlieb
2009-11-11 10:48:20 UTC
Permalink
Hail there Ilya!

Tue, 10 Nov 2009 at 07:28 GMT Ilya Kulagin wrote:

IK> Когда мне не понравился мой единственный гигабитный линк, выяснилось, что
IK> дело было даже не в коммутаторе, а в проводе.

5Е патчкорды. Фирменные сановские :-)
--
WBR, Alexander B. Gottlieb, mailto:***@ai.usurt.ru
ICQ: 13043204 / Jabber: ***@jabber.usurt.ru
-|- -|-
Vitaly Filatov
2009-11-16 02:50:16 UTC
Permalink
Post by Victor Sudakov
Коллеги,
of=/dev/null bs=1048576
5120+0 records in
5120+0 records out
0.02u 13.91s 0:46.38 30.0%
Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
быть?
Оценка по nfs может быть неточной и завышенной, т.к. в nfs используется
кеширование.

Попробуйте скрипт. Он даёт примерную оценку скорости приёма-передачи и
объём данных принятых-переданных с момента старта скрипта.

Скрипт написан для интерфейса e1000g0. Используйте "netstat -i", чтобы
посмотреть имена интерфейсов.

----------------------------- if.bat -----------------------------
date
new=`netstat -i | nawk '/e1000g0/{print $7}'`
new1=`netstat -i | nawk '/e1000g0/{print $5}'`
start=$new
start1=$new1
sleep 10

while true
do

old=$new
old1=$new1
new=`netstat -i | nawk '/e1000g0/{print $7}'`
new1=`netstat -i | nawk '/e1000g0/{print $5}'`
#echo $new, $old

nawk -v new=$new -v new1=$new1 -v old=$old -v old1=$old1 -v start=$start
-v start1=$start1 '
BEGIN {
n=new+0.0
o=old+0.0
n1=new1+0.0
o1=old1+0.0
s=start+0.0
s1=start1+0.0
printf("sent (Kb/s) = %10f, ", ((n - o)*1.5)/10)
printf("%12f (Mb) -- ", ((n-s)*1.5)/1000.0)
printf("receive (Kb/s) = %10f, ", ((n1 - o1)*1.5)/10)
printf("%12f (Mb)\n", ((n1-s1)*1.5)/1000.0)
}
'
sleep 10
done
----------------------------- if.bat -----------------------------
Dmitry Miloserdov
2009-11-16 13:40:29 UTC
Permalink
Post by Vitaly Filatov
Post by Victor Sudakov
Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
быть?
Оценка по nfs может быть неточной и завышенной, т.к. в nfs используется
кеширование.
Попробуйте скрипт. Он даёт примерную оценку скорости приёма-передачи и
объём данных принятых-переданных с момента старта скрипта.
Ужас.
Боитесь кэширования используйте iostat -x 10
А с таким скриптом и за 130 легко выйдет.
Victor Sudakov
2009-11-17 05:58:53 UTC
Permalink
Post by Vitaly Filatov
Post by Victor Sudakov
of=/dev/null bs=1048576
5120+0 records in
5120+0 records out
0.02u 13.91s 0:46.38 30.0%
Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
быть?
Оценка по nfs может быть неточной и завышенной, т.к. в nfs используется
кеширование.
Файл bigfile.bin свежесозданный с помощью 'mkfile -n', так что
кеширование вряд ли влияет.

А могло повлиять то, что файл sparse?

Впрочем по FTP скорость такая же, а FTP точно не пользуется ни
кешированием, ни знанием о дырявых файлах.
--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/***@fidonet http://vas.tomsk.ru/
Andrey N. Oktyabrski
2009-11-17 08:44:17 UTC
Permalink
Post by Victor Sudakov
Файл bigfile.bin свежесозданный с помощью 'mkfile -n', так что
кеширование вряд ли влияет.
А могло повлиять то, что файл sparse?
Впрочем по FTP скорость такая же, а FTP точно не пользуется ни
кешированием, ни знанием о дырявых файлах.
Воспользуйся же, наконец, iperf'ом :-)
Victor Sudakov
2009-11-17 15:20:17 UTC
Permalink
Post by Andrey N. Oktyabrski
Post by Victor Sudakov
Файл bigfile.bin свежесозданный с помощью 'mkfile -n', так что
кеширование вряд ли влияет.
А могло повлиять то, что файл sparse?
Впрочем по FTP скорость такая же, а FTP точно не пользуется ни
кешированием, ни знанием о дырявых файлах.
Воспользуйся же, наконец, iperf'ом :-)
Можно конечно, но мне интереснее реальная пропускная способность при
дисковых операциях, поэтому и мерять логичнее с помощью подобной
операции.
--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/***@fidonet http://vas.tomsk.ru/
Vitaly Filatov
2009-11-17 12:24:56 UTC
Permalink
Post by Victor Sudakov
Post by Vitaly Filatov
Post by Victor Sudakov
of=/dev/null bs=1048576
5120+0 records in
5120+0 records out
0.02u 13.91s 0:46.38 30.0%
Я правильно посчитал, что это 111 МБ/сек? А разве столько много может
быть?
Оценка по nfs может быть неточной и завышенной, т.к. в nfs используется
кеширование.
Файл bigfile.bin свежесозданный с помощью 'mkfile -n', так что
кеширование вряд ли влияет.
А могло повлиять то, что файл sparse?
Впрочем по FTP скорость такая же, а FTP точно не пользуется ни
кешированием, ни знанием о дырявых файлах.
У nfs свой кеш. Это не кеш ОС. И общее время выполнения прикладной
программы, с помощью которого вы определяете скорость передачи,
зависит от того дожидается ли она заключительного сообщения
commit от nfs-файловой системы. Кто его знает.

Поэтому я и написал, что оценка может быть не точной.

Hаверное ftp лучше, а ещё лучше http использовать для оценки.

А что скрипт показывает?

Я его использую, когда закачиваю файл на какой-нибудь файлообменный
сервис, который не показывает процент уже выполненной работы (например,
files.mail.ru). Видно: идёт закачка или "слетела" и сколько ждать ещё.
Dmitry Miloserdov
2009-11-17 16:21:07 UTC
Permalink
Post by Vitaly Filatov
Post by Victor Sudakov
Впрочем по FTP скорость такая же, а FTP точно не пользуется ни
кешированием, ни знанием о дырявых файлах.
У nfs свой кеш. Это не кеш ОС.
О как!
А поподробней кто еще кроме ОС может что-то кэшировать.
Желательно с источниками информации.
Post by Vitaly Filatov
И общее время выполнения прикладной
программы, с помощью которого вы определяете скорость передачи,
зависит от того дожидается ли она заключительного сообщения
commit от nfs-файловой системы. Кто его знает.
А вот если взглянуть что nfs-файл только читается то какого
же commit нужно было дождаться?
Post by Vitaly Filatov
Поэтому я и написал, что оценка может быть не точной.
Оценка практически точна.
Если интересна скорость чтения по nfs.
Абстрактная скорость работы сетевой карточки
мало кому интересна.
Post by Vitaly Filatov
А что скрипт показывает?
Скрипт показывает бесполезных попугаев.
Считать что все пакеты длиной 1500 глупо.

Если вдруг окажется nfs через udp
будет на 12% больше реальной скорости
Vitaly Filatov
2009-11-17 17:05:23 UTC
Permalink
Post by Dmitry Miloserdov
Post by Vitaly Filatov
Post by Victor Sudakov
Впрочем по FTP скорость такая же, а FTP точно не пользуется ни
кешированием, ни знанием о дырявых файлах.
У nfs свой кеш. Это не кеш ОС.
О как!
А поподробней кто еще кроме ОС может что-то кэшировать.
Желательно с источниками информации.
ls /usr/lib/fs
Post by Dmitry Miloserdov
Post by Vitaly Filatov
А что скрипт показывает?
Скрипт показывает бесполезных попугаев.
Считать что все пакеты длиной 1500 глупо.
Если вдруг окажется nfs через udp
будет на 12% больше реальной скорости
Я написал про "оценку". И мне было интересно совпали ли результаты
или нет - не в дугу.
Dmitry Miloserdov
2009-11-18 19:41:27 UTC
Permalink
Post by Vitaly Filatov
Post by Dmitry Miloserdov
Post by Vitaly Filatov
Post by Victor Sudakov
Впрочем по FTP скорость такая же, а FTP точно не пользуется ни
кешированием, ни знанием о дырявых файлах.
У nfs свой кеш. Это не кеш ОС.
О как!
А поподробней кто еще кроме ОС может что-то кэшировать.
Желательно с источниками информации.
ls /usr/lib/fs
autofs fd mntfs pcfs tmpfs xmemfs
cachefs hsfs nfs proc udfs zfs
ctfs lofs objfs sharefs ufs

И?
Дальше что?
Где же тут кеш nfs?
Только не надо про diskless рассказывать это явно не тот случай.
Post by Vitaly Filatov
Post by Dmitry Miloserdov
Post by Vitaly Filatov
А что скрипт показывает?
Скрипт показывает бесполезных попугаев.
Считать что все пакеты длиной 1500 глупо.
Если вдруг окажется nfs через udp
будет на 12% больше реальной скорости
Я написал про "оценку". И мне было интересно совпали ли результаты
или нет - не в дугу.
Отличная оценка. У человека гигабит так что мог с легкостью
поставить mtu=9000 и получить твоим скриптом 20 вместо 111.
Скрипт меряет неизвестно что.
Почему если нужен трафик на интерфейсе не посмотреть этот трафик?
kstat -p ::e1000g0:*bytes64
Если антикварная версия то через snmp или netstat -k.
Vitaly Filatov
2009-11-18 21:21:47 UTC
Permalink
Post by Dmitry Miloserdov
Post by Vitaly Filatov
Post by Dmitry Miloserdov
Post by Vitaly Filatov
Post by Victor Sudakov
Впрочем по FTP скорость такая же, а FTP точно не пользуется ни
кешированием, ни знанием о дырявых файлах.
У nfs свой кеш. Это не кеш ОС.
О как!
А поподробней кто еще кроме ОС может что-то кэшировать.
Желательно с источниками информации.
ls /usr/lib/fs
autofs fd mntfs pcfs tmpfs xmemfs
cachefs hsfs nfs proc udfs zfs
ctfs lofs objfs sharefs ufs
И?
Дальше что?
Где же тут кеш nfs?
Только не надо про diskless рассказывать это явно не тот случай.
В Cолярис имеются несколько файловых систем, см. /usr/lib/fs или
/kernel/fs. У каждой из них свой алгоритм кеширования данных, наиболее
подходящий для этой файловой системы. Это не общий кеш c общей
дисциплиной на все файловые системы. Конечно все эти кеши
отображаются на оперативную память, но управление оперативной
памятью, выделяемой для модулей ядра файловых систем по вызову
kmem_cache_alloc, - это уже другая история.

Алгоритм кеша nfs реализован в /kernel/fs/nfs. Кеш nfs расположен на
клиенте nfs.
Post by Dmitry Miloserdov
Post by Vitaly Filatov
Post by Dmitry Miloserdov
Post by Vitaly Filatov
А что скрипт показывает?
Скрипт показывает бесполезных попугаев.
Считать что все пакеты длиной 1500 глупо.
Если вдруг окажется nfs через udp
будет на 12% больше реальной скорости
Я написал про "оценку". И мне было интересно совпали ли результаты
или нет - не в дугу.
Отличная оценка. У человека гигабит так что мог с легкостью
поставить mtu=9000 и получить твоим скриптом 20 вместо 111.
Скрипт меряет неизвестно что.
Почему если нужен трафик на интерфейсе не посмотреть этот трафик?
kstat -p ::e1000g0:*bytes64
Если антикварная версия то через snmp или netstat -k.
Hе буду с вами спорить. Согласен.
Dmitry Miloserdov
2009-11-19 10:47:55 UTC
Permalink
Post by Vitaly Filatov
Post by Dmitry Miloserdov
Post by Vitaly Filatov
ls /usr/lib/fs
autofs fd mntfs pcfs tmpfs xmemfs
cachefs hsfs nfs proc udfs zfs
ctfs lofs objfs sharefs ufs
И?
Дальше что?
Где же тут кеш nfs?
Только не надо про diskless рассказывать это явно не тот случай.
В Cолярис имеются несколько файловых систем, см. /usr/lib/fs или
/kernel/fs. У каждой из них свой алгоритм кеширования данных, наиболее
подходящий для этой файловой системы. Это не общий кеш c общей
дисциплиной на все файловые системы. Конечно все эти кеши
отображаются на оперативную память, но управление оперативной
памятью, выделяемой для модулей ядра файловых систем по вызову
kmem_cache_alloc, - это уже другая история.
Алгоритм кеша nfs реализован в /kernel/fs/nfs. Кеш nfs расположен на
клиенте nfs.
Страшные вещи рассказываешь. Особенно про kmem_cache_alloc ;)
Эта функция выделяет объект из пула объектов позволяя повторно
использовать один и тот же без повторной инициализации.
Вообщем к кешу fs никоим образом не относится.

Файловых систем много но все кроме zfs замечательно
укладываются в одну схему. Естественно память ядра для кэширования
данных не используется. В солярисе практически весь ввод-вывод
делается через paging (если повезет даже без copyin/copyout)
Кеш данных расположен как раз на том уровне и продолжительность
кеширования зависит больше от типа данных нежели от источника.
Все закешированные страницы в 10ке помечены как свободные,
а никак не в памяти ядра. Администратор соляриса вообще-то
должен это знать чтоб отличать интенсивный ввод-вывод от
нехватки памяти.
Есть конечно куча других кешей типа dnlc или nfs-idmap, но они
никоим образом не влияют на скорость чтения большого файла.

Я конечно не могу на 100% быть уверенным что /kernel/fs/nfs
данные не кеширует, но судя по реверансу в сторону
kmem_cache_alloc есть у меня некоторые подозрения в достоверности
твоей информации. Вообщем огласи источник информации.
Vitaly Filatov
2009-11-19 14:52:30 UTC
Permalink
...
Post by Dmitry Miloserdov
Я конечно не могу на 100% быть уверенным что /kernel/fs/nfs
данные не кеширует, но судя по реверансу в сторону
kmem_cache_alloc есть у меня некоторые подозрения в достоверности
твоей информации. Вообщем огласи источник информации.
Тексты программ nfs.

В частности я предполагаю (не проверял), что те модули файловых
систем, что содержат вызов kmem_cache_alloc обеспечивают кеширование
данных, а те, что не содержат - не кешируют:

$ for i in /kernel/fs/*fs; do echo "===== $i ====="; nm $i | grep
kmem_cache_alloc; done
===== /kernel/fs/autofs =====
===== /kernel/fs/cachefs =====
[564] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/ctfs =====
===== /kernel/fs/dcfs =====
[114] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/devfs =====
[180] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/fifofs =====
[127] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/hsfs =====
[231] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/lofs =====
[182] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/lx_afs =====
===== /kernel/fs/mntfs =====
===== /kernel/fs/namefs =====
===== /kernel/fs/nfs =====
[1540] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/objfs =====
===== /kernel/fs/procfs =====
===== /kernel/fs/sharefs =====
===== /kernel/fs/sockfs =====
[679] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/specfs =====
[176] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/tmpfs =====
===== /kernel/fs/udfs =====
===== /kernel/fs/ufs =====
[879] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
===== /kernel/fs/zfs =====
[2308] | 0| 0|FUNC |GLOB |0 |UNDEF |kmem_cache_alloc
$
Dmitry Miloserdov
2009-11-19 16:47:37 UTC
Permalink
Post by Vitaly Filatov
Post by Dmitry Miloserdov
Я конечно не могу на 100% быть уверенным что /kernel/fs/nfs
данные не кеширует, но судя по реверансу в сторону
kmem_cache_alloc есть у меня некоторые подозрения в достоверности
твоей информации. Вообщем огласи источник информации.
Тексты программ nfs.
В частности я предполагаю (не проверял), что те модули файловых
систем, что содержат вызов kmem_cache_alloc обеспечивают кеширование
kmem_cache_alloc не имеет _HИКАКОГО_ отношения к кэшированию.
То что в названии есть слово cache это не значит что он относится к
кешу данных.
Vitaly Filatov
2009-11-19 20:06:18 UTC
Permalink
Post by Dmitry Miloserdov
Post by Vitaly Filatov
Post by Dmitry Miloserdov
Я конечно не могу на 100% быть уверенным что /kernel/fs/nfs
данные не кеширует, но судя по реверансу в сторону
kmem_cache_alloc есть у меня некоторые подозрения в достоверности
твоей информации. Вообщем огласи источник информации.
Тексты программ nfs.
В частности я предполагаю (не проверял), что те модули файловых
систем, что содержат вызов kmem_cache_alloc обеспечивают кеширование
kmem_cache_alloc не имеет _HИКАКОГО_ отношения к кэшированию.
То что в названии есть слово cache это не значит что он относится к
кешу данных.
Целиком с вами согласен, что к самому алгоритму кеширования
файловой системы этот вызов отношения не имеет. Он выделяет память
для построения элемента кеша. А дисциплина кеша - алгоритм кеширования
определяется программой соответствующего модуля, данной файловой
системы, т.е. на более высоком уровне.
Dmitry Miloserdov
2009-11-20 19:50:48 UTC
Permalink
Post by Vitaly Filatov
Post by Dmitry Miloserdov
kmem_cache_alloc не имеет _HИКАКОГО_ отношения к кэшированию.
То что в названии есть слово cache это не значит что он относится к
кешу данных.
Целиком с вами согласен, что к самому алгоритму кеширования
файловой системы этот вызов отношения не имеет.
Да.
Post by Vitaly Filatov
Он выделяет память для построения элемента кеша.
Hет. Он выделяет память для чего-то другого.
Post by Vitaly Filatov
А дисциплина кеша - алгоритм кеширования определяется программой
соответствующего модуля, данной файловой системы, т.е. на более
высоком уровне.
Hет. Кеширование данных происходит за пределами модуля fs.
Hа уровне fop/vop _HЕЗАВИСИМО_ от типа файловой системы.
Serguei E. Leontiev
2009-11-21 09:25:53 UTC
Permalink
Здравствуй Dmitry,
Post by Vitaly Filatov
Post by Dmitry Miloserdov
kmem_cache_alloc не имеет _HИКАКОГО_ отношения к кэшированию.
То что в названии есть слово cache это не значит что он относится к
кешу данных.
Целиком с вами согласен, что к самому алгоритму кеширования
файловой системы этот вызов отношения не имеет.
Да.
Post by Vitaly Filatov
Post by Dmitry Miloserdov
Он выделяет память для построения элемента кеша.
DM> Hет. Он выделяет память для чего-то другого.

IMHO, Дмитрий, надо было бы отослать Виталия к man kmem_cache_alloc.

Конечно же, kmem_cache_alloc() выдаёт указатель на сконструированный
объект кэша объектов, который был создан функцией kmem_cache_create().

Только вот кэшу ФС, как его обычно определяют, это не имеет ни малейшего
отношения, т.е. это может быть кэш соединений, кэш i-node и т.п. объекты
--
Успехов, Сергей Леонтьев. E-mail: ***@CryptoPro.ru <http://www.cryptopro.ru>
Andrey N. Oktyabrski
2009-11-17 20:36:08 UTC
Permalink
Post by Dmitry Miloserdov
Абстрактная скорость работы сетевой карточки
мало кому интересна.
Это почему же? Если виновник тормозов не один из пятерых
(адаптер-шнурок-свич-шнурок-адаптер), а тормоза есть, как у Alexander
Gottlieb, то стОит проверить что-то другое (диски, контроллеры,
настройки, ...). Как часть процесса диагностики - очень даже интересна.
Dmitry Miloserdov
2009-11-18 20:07:01 UTC
Permalink
Post by Andrey N. Oktyabrski
Post by Dmitry Miloserdov
Абстрактная скорость работы сетевой карточки
мало кому интересна.
Это почему же? Если виновник тормозов не один из пятерых
(адаптер-шнурок-свич-шнурок-адаптер), а тормоза есть, как у Alexander
Gottlieb, то стОит проверить что-то другое (диски, контроллеры,
настройки, ...). Как часть процесса диагностики - очень даже интересна.
Hу так проблема-то все равно "медленно передаются файлы по nfs"
и именно эту задачу он будет решать.
Как ему поможет объем трафика через интерфейс не особо понятно.
Hагрузить канал чем-то другим вместо нужного протокола это
понять можно, но все равно при этом будет интересовать не
просто количество пакетов, а объем нужного трафика полученный
по протоколу.
Vitaly Filatov
2009-11-17 12:37:59 UTC
Permalink
Post by Victor Sudakov
А могло повлиять то, что файл sparse?
Я не знаю как nfs обрабатывает sparse-файлы.

Можно так файл создавать:

tar cf - /usr | gzip | split -b 1000m
Vova Uralsky
2009-11-17 12:03:27 UTC
Permalink
Hi!

Vitaly Filatov -> Victor Sudakov wrote:
VF> Можно так файл создавать:
VF> tar cf - /usr | gzip | split -b 1000m


dd if=/dev/zero | split -b 1000m

;-)

Vova
Vitaly Filatov
2009-11-17 15:11:15 UTC
Permalink
Post by Vova Uralsky
Hi!
VF> tar cf - /usr | gzip | split -b 1000m
dd if=/dev/zero | split -b 1000m
;-)
Vova
Hу у меня-то файл заполнен псевдослучайными значениями, а у вас -
нулями.

И это нулевое содержимое может сыграть какую-нибудь злую шутку...
Vova Uralsky
2009-11-18 05:19:42 UTC
Permalink
Hi!
VF>>> Можно так файл создавать:
VF>>> tar cf - /usr | gzip | split -b 1000m
Post by Vova Uralsky
dd if=/dev/zero | split -b 1000m
;-)
VF> Hу у меня-то файл заполнен псевдослучайными значениями, а у вас -
VF> нулями.
VF> И это нулевое содержимое может сыграть какую-нибудь злую шутку...

Какую?

Vova
Vitaly Filatov
2009-11-18 15:08:56 UTC
Permalink
Post by Vova Uralsky
Hi!
VF>>> tar cf - /usr | gzip | split -b 1000m
Post by Vova Uralsky
dd if=/dev/zero | split -b 1000m
;-)
VF> Hу у меня-то файл заполнен псевдослучайными значениями, а у вас -
VF> нулями.
VF> И это нулевое содержимое может сыграть какую-нибудь злую шутку...
Какую?
Vova
Был случай, когда nfs работал для пользователей вроде бы нормально, но
случайно выяснилось, что длинный файл из нулей не передаётся (или если
внутри файла была достаточно длинная последовательность нулей). В то же
время длинная последовательность единиц передавалась без проблем.
Оборудование было Sun'овское, а nfs по udp ещё. Оказалось что плохой
был отрезок витой пары и последовательнось нулей создавала помеху и
сбивала приём. Файл "не собирался" (udp). Последовательность единиц
должна создавать такую-же по форме помеху, но с другой фазой и сетевая
карта на эту такую помеху не реагировала. А когда передавалась обычная
информация, то стационарной помехи не получалось - помеха "гуляла" и не
затыкала надолго приём (были отдельные редкие сбои). Так что...
Vova Uralsky
2009-11-18 19:10:31 UTC
Permalink
Hi!

Vitaly Filatov -> Vova Uralsky schrieb:
VF>>> И это нулевое содержимое может сыграть какую-нибудь злую шутку...
Post by Vova Uralsky
Какую?
VF> Был случай, когда nfs работал для пользователей вроде бы нормально, но
VF> случайно выяснилось, что длинный файл из нулей не передаётся (или если
VF> внутри файла была достаточно длинная последовательность нулей). В то же

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

Vova
Victor Sudakov
2009-11-17 15:18:46 UTC
Permalink
Post by Vova Uralsky
VF> tar cf - /usr | gzip | split -b 1000m
dd if=/dev/zero | split -b 1000m
;-)
IMHO split тут будет дико тормозить. Гораздо удобнее просто
'mkfile 1g bigfile.bin', без '-n' он не будет sparse.
--
Victor Sudakov, VAS4-RIPE, VAS47-RIPN
2:5005/***@fidonet http://vas.tomsk.ru/
Vova Uralsky
2009-11-18 05:18:52 UTC
Permalink
Hi!

Victor Sudakov -> Vova Uralsky wrote:
VF>>> Можно так файл создавать:
VF>>> tar cf - /usr | gzip | split -b 1000m
Post by Vova Uralsky
dd if=/dev/zero | split -b 1000m
;-)
VS> IMHO split тут будет дико тормозить. Гораздо удобнее просто
VS> 'mkfile 1g bigfile.bin', без '-n' он не будет sparse.

Конечно будет! Смайлик должен был подчеркнуть бессмысленность
оптимизации бессмысленных действий.

Vova
Loading...