#11
|
|||
|
|||
ARC max size
Slawa Olhovchenkov написал(а) к Eugene Grosbein в May 18 00:18:16 по местному времени:
Нello Eugene! 12 May 18, Eugene Grosbein writes to Slawa Olhovchenkov: SO>>>> женя, твой любимый костыль сломан: SO>>>> vfs.zfs.arc_max=367001600 SO>>>> ARC Size: 137.21% 480.24 MiB SO>>>> Target Size: (Adaptive) 100.00% 350.00 MiB SO>>>> Min Size (Нard Limit): 43.71% 152.99 MiB SO>>>> Max Size (Нigh Water): 2:1 350.00 MiB SO>>>> На самом деле даже это все вранье и ARC жрет в данном случае SO>>>> примерно SO>>>> 28.309 zfsznodecache 264*(112417+23) SO>>>> 36.250 ziodata_buf131072 131072*(78+212) SO>>>> 38.252 dmubuf_implt 232*(168711+4179) SO>>>> 79.938 ziobuf512 512*(160568+3144) SO>>>> 92.703 ziobuf16384 16384*(5829+104) SO>>>> 113.354 dnode_t 728*(160804+2466) SO>>>> 749.027 abd_chunk 4096*(35881+155870) SO>>>> 1138.46MB EG>>> В таких случаях тащем-то надо упоминать ветку, ревизию и даже EG>>> платформу, так как неработа лимита на i386 для меня не новость. И EG>>> наличие локальных патчей на ZFS тоже. SO>> ой, ну догадайся: 11-STABLE latest, amd64, ванилька (никаких патчей SO>> вообще) стал бы я гундеть, если бы там были какие-то патчи? всегда же SO>> можно попытаться стрелки перевести. EG> Ну вот у меня есть 11.1-STABLE/amd64 r325097 с 64G памяти, EG> ZFS и лимитом в 32G. Откуда вообще отквоченные цифры и как EG> мне посмотреть их у себя? ограничиваешь всю память до двух гигов (возможно это опционально) разворачиваешь сырцы скрипт size.pl #!/usr/bin/perl use Fcntl ':mode'; $list = shift @ARGV; open F,'<',$list; while(<F>) { @F = split; my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($F[0]); next unless $mode & S_IFREG; next if $size == 0; print "$F[0] $size\n"; } close F; find /usr/src | size.pl > list.size скрипт test-mfu.pl #!/usr/bin/perl # input is file list w/ sizes from 2) $list = shift @ARGV; $set_size = shift @ARGV; my (@mfu, @mru); $mfut_size = 10241024$setsize; $mfu_size = 0; $mru_size = 0; print "Size calculated\n"; open F,'<',$list; while(<F>) { @F = split; if($mfusize < $mfu_tsize) { $mfu_size += $F[1]; push @mfu, $F[0]; } else { $mru_size += $F[1]; push @mru, $F[0]; } } close F; print "MFU $mfusize MRU $mrusize\n"; print "Started\n"; my @List = @mru; $cnt = 4; $n = $cnt; foreach $f (@mfu) { open F,'<', $f; while(<F>) { } close F; } print "Loop2\n"; while(1) { foreach $f (@mfu) { open F,'<', $f; while(<F>) { } close F; if(--$n == 0) { $n = $cnt; $l = shift @List; if(scalar @mru == 0) { @List = @mru; print "mru reset\n"; } open F,'<', $l; while(<F>) { } close F; } } print "Loop\n"; } Запускаем с vfs.zfs.arc_max=367001600 test-mfu.pl list.size 300 проверяем через zfs-stats -A еще скрпит vmstatSum.pl #!/usr/bin/perl while(<>) { if($s == 2 && /^$/) { exit 0; } if($s == 1 && /^$/) { $s = 2; next; } if(/^ITEM/) { $s = 1; next; } next unless ($s == 2); printf "%8.3f %20s %d(%d+%d)\n", $2($3+$4)/1024/1024, $1, $2,$3,$4 if /(.+):\s+(\d+),\s+\d+,\s+(\d+),\s+(\d+),/; } vmstat -z | vmstatSum.pl | sort -n ... 60кг нераспечатанных листингов сберегают одно дерево. --- GoldED+/BSD 1.1.5-b20110223-b20110223 |
#12
|
|||
|
|||
Re: ARC max size
Alex Korchmar написал(а) к Slawa Olhovchenkov в May 18 01:52:01 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Slawa Olhovchenkov <Slawa.Olhovchenkov@f500.n5030.z2.fidonet.org> wrote: SO> так ты пальцем-то покажи, что и как там автоматизированно. SO> засовываешь в гит версию до ARC compress. SO> прикладываешь мой патч. проблема, банально в том, что a) твой патч давно было бы невозможно приложить, если бы не модификации в трех местах b) помимо твоего есть еще мои. И я вот хз как это сделать с svn. Ну не жениным же методом с разглядыванием диффов патчей. SO> апдейтишь до последней STABLE (ну просто дифф накатываешь). просто дифф - заманаешься править. Там merge тем и лучше, что он знает о мелких изменениях по дороге, поэтому шансов тривиальные вещи сделать быстро или вовсе автоматически, у него больше. Надо перебираться на git-svn целиком тогда (заодно можно будет на халяву тырить патчи из апстримов, да и вообще смотреть, чем отличаются), но я пока на это не готов. SO> ну кажется его можно более-менее вырубить. SO> booleant zfs_abd_scatter_enabled = BFALSE; это, по-моему, только половину отключает, жрать он, наверное, не перестанет. SO> она кажется пока только по названию асинхронная. SO> просто переименовали кажется, в данный момент. значит, опять повиснет. И, кстати, да, эту abd-хрень добавляли в надежде что-то там сделать хорошо для compressed arc. Я так и не докопался, чем именно. > Alex --- ifmail v.2.15dev5.4 |
#13
|
|||
|
|||
ARC max size
Slawa Olhovchenkov написал(а) к Alex Korchmar в May 18 02:06:56 по местному времени:
Нello Alex! 12 May 18, Alex Korchmar writes to Slawa Olhovchenkov: SO>> так ты пальцем-то покажи, что и как там автоматизированно. SO>> засовываешь в гит версию до ARC compress. SO>> прикладываешь мой патч. AK> проблема, банально в том, что a) твой патч давно было бы невозможно AK> приложить, если бы не модификации в трех местах так вот на когда было возможно -- тогда и прикладываешь. AK> b) помимо твоего есть еще мои. ну ты же топил за то, как классно git это позволяет разделять! я же тоже коворил, что у меня есть еще патчи AK> И я вот хз как это сделать с svn. Ну не жениным же методом с AK> разглядыванием диффов патчей. ты на git сделай SO>> апдейтишь до последней STABLE (ну просто дифф накатываешь). AK> просто дифф - заманаешься править. Там merge тем и лучше, что он знает AK> о мелких изменениях по дороге, поэтому шансов тривиальные вещи сделать AK> быстро или вовсе автоматически, у него больше. abd влепили сразу большим куском. arc compress -- аналогично. о чем ты говоришь? SO>> ну кажется его можно более-менее вырубить. SO>> booleant zfs_abd_scatter_enabled = BFALSE; AK> это, по-моему, только половину отключает, жрать он, наверное, не AK> перестанет. перестанет. оно типа сразу по старинке пойдет, через зоны. еще и ARC там где-то с чем-то шарится начнет. ну как диагональный взгляд на код говорит. SO>> она кажется пока только по названию асинхронная. SO>> просто переименовали кажется, в данный момент. AK> значит, опять повиснет. AK> И, кстати, да, эту abd-хрень добавляли в надежде что-то там сделать хорошо AK> для compressed arc. Я так и не докопался, чем именно. хз. мне только этих копирований и не хватает (храним компрессированным, отдаем разжатым, нахуй мне это надо?) ... Buing a Pentium II you can reboot faster --- GoldED+/BSD 1.1.5-b20110223-b20110223 |
#14
|
|||
|
|||
Re: ARC max size
Alex Korchmar написал(а) к Slawa Olhovchenkov в May 18 09:42:15 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Slawa Olhovchenkov <Slawa.Olhovchenkov@f500.n5030.z2.fidonet.org> wrote: SO> ну ты же топил за то, как классно git это позволяет разделять! так для этого нужен git, а не имитация. С полным всосом изменений из svn, с ручным всосом своих поштучно. При этом как и насколько прилично работает первое и не сломается ли чего - надо проверять. SO> abd влепили сразу большим куском. это отдельная песня ( к тому же, похоже, лучшее что по этом поводу можно сделать - выпилить обратно). А мы о той части возни. которая может быть автоматической - а по факту вручную ковыряюсь с .rej AK>> И, кстати, да, эту abd-хрень добавляли в надежде что-то там сделать хорошо AK>> для compressed arc. Я так и не докопался, чем именно. SO> хз. мне только этих копирований и не хватает (храним SO> компрессированным, отдаем разжатым, нахуй мне это надо?) там идея в том, что зато не разжимается на чтении - как с диска сжатое прочитали, так и лежит. А разжимать может и вовсе не понадобится - например, если притащил prefetch и не угадал. Ну и все ж врали что "потери на lz4 незаметны" (а что они "незаметны" только в случае обычных дисков, избытка cpu и свободной памяти - как-то постепенно забыли) > Alex --- ifmail v.2.15dev5.4 |
#15
|
|||
|
|||
ARC max size
Slawa Olhovchenkov написал(а) к Alex Korchmar в May 18 11:36:02 по местному времени:
Нello Alex! 12 May 18, Alex Korchmar writes to Slawa Olhovchenkov: SO>> ну ты же топил за то, как классно git это позволяет разделять! AK> так для этого нужен git, а не имитация. AK> С полным всосом изменений из svn, с ручным всосом своих поштучно. AK> При этом как и насколько прилично работает первое и не сломается ли чего - AK> надо проверять. это если бы одно место там часто правилось. а это не так. фактически там каждое место можно считать правилось по одному разу. так что одним патчем можно симитировать. SO>> abd влепили сразу большим куском. AK> это отдельная песня ( к тому же, похоже, лучшее что по этом поводу можно AK> сделать - выпилить обратно). хуй. слишком много. и потом прошлись еще несколько раз AK> А мы о той части возни. которая может быть автоматической - а по факту AK> вручную ковыряюсь с .rej зачем с .rej ковыряться? даже svn автоматизирует эту работу. AK>>> И, кстати, да, эту abd-хрень добавляли в надежде что-то там сделать AK>>> хорошо для compressed arc. Я так и не докопался, чем именно. SO>> хз. мне только этих копирований и не хватает (храним SO>> компрессированным, отдаем разжатым, нахуй мне это надо?) AK> там идея в том, что зато не разжимается на чтении - как с диска сжатое AK> прочитали, так и лежит. А разжимать может и вовсе не понадобится - AK> например, если притащил prefetch и не угадал. у меня префетч вырублен. если я прочитал -- я потреблю. причем неоднократно. ... Сэр, я ничего не хочу сказать, но, сэр, мухи... они редко ошибаются, сэр! --- GoldED+/BSD 1.1.5-b20110223-b20110223 |
#16
|
|||
|
|||
Re: ARC max size
Eugene Grosbein написал(а) к Slawa Olhovchenkov в May 18 17:33:59 по местному времени:
11 мая 2018, пятница, в 22:18 NOVT, Slawa Olhovchenkov написал(а): EG>> Ну вот у меня есть 11.1-STABLE/amd64 r325097 с 64G памяти, EG>> ZFS и лимитом в 32G. Откуда вообще отквоченные цифры и как EG>> мне посмотреть их у себя? SO> ограничиваешь всю память до двух гигов (возможно это опционально) SO> разворачиваешь сырцы SO> скрипт size.pl SO> #!/usr/bin/perl SO> use Fcntl ':mode'; SO> $list = shift @ARGV; SO> open F,'<',$list; SO> while(<F> ) { SO> @F = split; SO> my SO> ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) SO> = stat($F[0]); SO> next unless $mode & S_IFREG; SO> next if $size == 0; SO> print "$F[0] $size\n"; SO> } SO> close F; SO> find /usr/src | size.pl > list.size Вот это не работает. Судя по коду, тут пара проблем. Во-первых, оно хочет результат find в именованном файле и имя файла аргументом, а не поток через stdin. Во-вторых, оно использует stat вместо lstat, а в дереве src есть пара симлинков, в результате чего эти файлы попадают в список дважды, со своим именем и с именем линка. И по-моему, то же самое даёт просто команда find /usr/src -type f \! -size 0 | xargs stat -f "%N %z" > list.size Только без багов, м? Eugene --- slrn/1.0.2 (FreeBSD) |
#17
|
|||
|
|||
ARC max size
Slawa Olhovchenkov написал(а) к Eugene Grosbein в May 18 13:20:18 по местному времени:
Нello Eugene! 12 May 18, Eugene Grosbein writes to Slawa Olhovchenkov: EG> Вот это не работает. Судя по коду, тут пара проблем. EG> Во-первых, оно хочет результат find в именованном файле EG> и имя файла аргументом, а не поток через stdin. а, я забыл. ну у меня именно так и работало. EG> Во-вторых, оно использует stat вместо lstat, а в дереве src EG> есть пара симлинков, в результате чего эти файлы попадают EG> в список дважды, со своим именем и с именем линка. да посрать. у меня так работает. EG> И по-моему, то же самое даёт просто команда EG> find /usr/src -type f \! -size 0 | xargs stat -f "%N %z" > list.size EG> Только без багов, м? да без разницы. на воспроизводимость не влияет. ... И вообще, я сегодня не обедала... --- GoldED+/BSD 1.1.5-b20110223-b20110223 |
#18
|
|||
|
|||
Re: ARC max size
Eugene Grosbein написал(а) к Slawa Olhovchenkov в May 18 18:06:12 по местному времени:
11 мая 2018, пятница, в 22:18 NOVT, Slawa Olhovchenkov написал(а): SO>>>>> 749.027 abd_chunk 4096*(35881+155870) Собственно, я спрашивал, разумеется, не про конкретные цифры, а откуда они взяты. SO> vmstat -z | vmstatSum.pl | sort -n Из vmstat -z, понятно. Eugene --- slrn/1.0.2 (FreeBSD) |
#19
|
|||
|
|||
Re: ARC max size
Alex Korchmar написал(а) к Slawa Olhovchenkov в May 18 13:42:51 по местному времени:
From: Alex Korchmar <noreply@linux.e-moe.ru> Slawa Olhovchenkov <Slawa.Olhovchenkov@f500.n5030.z2.fidonet.org> wrote: SO> это если бы одно место там часто правилось. а это не так. ну вот WAKE_PAGER - ровно по тому же месту. SO> зачем с .rej ковыряться? даже svn автоматизирует эту работу. он ее паршиво автоматизирует - в тех случаях, когда можно было автоматически все сделать. Потому что не умеет нормальные мержи. AK>> прочитали, так и лежит. А разжимать может и вовсе не понадобится - AK>> например, если притащил prefetch и не угадал. SO> у меня префетч вырублен. ну и зря, меряли же еще до arc compress - он на мелких файлах (то есть вообще файлах а не томах, скажем, или архивах по гигу) съедает чуть не треть скорости. > Alex --- ifmail v.2.15dev5.4 |
#20
|
|||
|
|||
ARC max size
Slawa Olhovchenkov написал(а) к Alex Korchmar в May 18 13:50:18 по местному времени:
Нello Alex! 12 May 18, Alex Korchmar writes to Slawa Olhovchenkov: SO>> это если бы одно место там часто правилось. а это не так. AK> ну вот WAKE_PAGER - ровно по тому же месту. окей, сделай тремя патчами/коммитами. SO>> зачем с .rej ковыряться? даже svn автоматизирует эту работу. AK> он ее паршиво автоматизирует - в тех случаях, когда можно было AK> автоматически все сделать. Потому что не умеет нормальные мержи. так продемонстрируй. AK>>> прочитали, так и лежит. А разжимать может и вовсе не понадобится - AK>>> например, если притащил prefetch и не угадал. SO>> у меня префетч вырублен. AK> ну и зря, меряли же еще до arc compress - он на мелких файлах (то есть AK> вообще файлах а не томах, скажем, или архивах по гигу) съедает чуть не AK> треть скорости. нет, не зря. у меня все посчитато и расчитанно и для для этого блоки по мегабайту сделаны. ... А их там было?! Их там не было! --- GoldED+/BSD 1.1.5-b20110223-b20110223 |