2012

Linux TCP performance Q

А вот у меня в FreeBSD, еще с гигабитных времен написано такое вот, к примеру:
net.inet.tcp.recvbuf_auto=1
net.inet.tcp.recvbuf_inc=131072
net.inet.tcp.recvbuf_max=1048576
net.inet.tcp.sendbuf_auto=1
net.inet.tcp.sendbuf_inc=131072
net.inet.tcp.sendbuf_max=1048576
net.inet.tcp.maxtcptw=102400
Ну и так далее, конкретные слова я брал, кажется, из какой-то презентации Сысоева. И работает, на 10G-сети Samba практически упирается в диски, насколько я вижу.

Вопрос: где взять готовых рецептов для тюнинга Linux? Задача - максимальный перформанс у самбы. А то сейчас смешно: запись 560Mb/sec, а чтение - 235, это же явно сеть не того, а не диски. dd гигабайтными блоками пишет 660 Mb/sec, а читает - 640.

Если существенно: Ubuntu Server 12.04, 3.2.0-29-generic #46-Ubuntu SMP. Intel Core-i5 2400, 8GB RAM.

Про SSD/SandForce

Лабаю тут варез для тестирования скорости NAS в понятных мне терминах. Тестирую на одном из рабочих дисков, а он SSD:

  • Запись ноликов гигабайтными чанками: 225Mb/sec. Единички (битовые) - столько же.
  • Запись псевдорандом-данных, гигабайтными чанками: 75Mb/sec

Холст, масло, OCZ Vertex 2, Sandforce SF-1200.

Ну то есть это все не новость, что у SandForce высокая скорость за счет сжатия, но не в три же раза. Точнее, это я думал, что не в три раза.

Отсюда вытекает естественный вопрос к авторам бенчмарок. Вот всякое Media Content Creation и прочее подобное - они там нолики создают?

P.S. 5 минут потраченных на поиск относительно быстрого псевдорандом-генератора - уже вполне окупились полученным удовольствием.

Update: Intel 520 (ssdsc2cw060a про себя говорит), та же хрень: 380Mb/sec нолики (или единички), 80Mb/sec - рандом.

Update2: OCZ Vertex3 MaxIOPS: 390Mb/sec - нолики, 197Mb/sec - random.

Больше SSD под рукой нету, ноутбуки пожалеем. Пойду теперь чтение тестировать :)

225 и, соответственно, 390 Mb/sec - это я, вполне возможно, уперся в SATA2/SATA3.

О 16-битных цифрозадниках

Наткнулся в ЖЖ Ильи Борга на такой вопрос к нему:
Я уточнить хотел к предыдущему вопросу. В MF цифровых камерах согласно всяким там заявленным характеристикам вроде часто стоит 16 битный АЦП. Это якобы заметно повышает ДД камеры (настолько что как обсуждалось некоторыми товарищами в той ссылке оставляет все DSLR с ихними 14 битами далеко позади). Это действительно так? Какй нибудь сильный выигрыш в тенях от этого получается?
Так вот, вот вам ответ для PhaseOne (компрессированный формат):
// dcraw.c, строчки в районе 1550-й, немножко упрощая
void CLASS phase_one_load_raw_c()
{
....
    for (col=0; col < raw_width; col++) {
      RAW(row,col) = (pixel[col] << 2) - ph1.black + black[row][col >= ph1.split_col];
    }
...
}
Если простыми словами, то в pixel[] содержится распакованая (из хаффмана) строка, дальше значение пиксела сдвигается на два бита (умножается на 4), потом вычитается уровень черного и все это кладется в 16-битный (unsigned short) буфер.

Какой вывод мы можем сделать? А такой, что АЦП - 14-битный, а в младших битах 16-битных значений до вычитания черного были такие вот кругленькие нолики.

В нежатом формате - не так, но нежатый формат я видел только на очень старых задниках, а все что видел нового - жатое. И на P45 и на P65+ и на IQ180 - везде в данных 14 реальных бит.

Справедливости ради, в материалах на сайте PhaseOne ничего про 16-битный АЦП не написано. Все гораздо более обтекаемо, "16-bit OptiColor"...

P.S. Написанное выше - конкретно про PhaseOne. Невозможность имения в этом формате 16-битных RAW-данных вытекает просто из процедуры распаковки. Для других форматов все не так прозрачно.

О сторадж-боксах

Звезды сошлись, руки дошли и я собрал таки стораджбокс, как и собирался уже полгода
Core i5-2300, 8GB RAM, Adaptec 5805, 8x1Tb HDD (6 штук старых Barracuda ES.2 SAS, два новых WD RE4), бутовый SSD, Mellanox Infiniband (2 порта 10G). И даже есть место для еще одного диска, хотя 5" ящики и не обдуваются.

Задача: вынести HDD из рабочей станции (где было 6x1Tb SAS + Adaptec) с целью уменьшения шума под столом (ну и вообще, большей лучшести, к этому ящику же можно больше одной машины подключить). При этом надо оставить избыточность в два диска т.е. RAID6 и/или RAIDZ2. Потому как ситуация, когда один диск вылетает - она случалась уже да.

LibRaw 0.15. Alpha2

По сложившейся традиции, анонсирую LibRaw 0.15 Alpha2.

Изменения относительно альфы-1:

  • Кроппинг и отдельный вызов LibRaw::subtract_black() полностью работоспособны (в альфе-1 это было не так).
  • Исправлена генерация тоновой кривой для lossy DNG, теперь она полностью совпадает с таковой у dcraw (в альфе-1 временами было расхождение в младшем бите).
  • Вместо поканальных максимумов данных (color_data.channel_maximum) сейчас рассчитывается общий максимум (color_data.data_maximum). Для коррекции розовых облаков этого достаточно.
  • Компрессированные файлы PhaseOne распаковываются в raw-буфер полностью "как есть", коррекция по метаданным из файла (замазывание плохих пикселов, вычитание черного) идет на этапе постобработки или в raw2image(). Если вдруг кому нужны полностью неизмененные данные с этих задников - вот они, пользуйтесь.
  • Импортирована свежая dcraw, поддержка Samsung NX-1000 и Sony DSC-RX100.

Спешу сообщить, что ветка 0.14 развиваться далее не будет, если нужна поддержка новых камер, то используйте 0.15. "Альфа" в названии означает на сегодня только нестабильность ABI (и в меньшей степени - API), а в смысле реальной жизни - все (вроде бы) довольно стабильно.

Лето 2012, этап 3: под парусом к монгольским северным оленям

Спрашивали монгольских фотографий? Их есть у меня:
Живут монголы в юртах чумах, вот так:

Лето 2012: этап 2

Тряхнули стариной (посыпался песок) и вывезли детей на Пистайоки. На шестиместных диванах катамаранах.
Вода - невероятно высокая, в начале июня (2001) такой не было, не говоря про середину лета (2000). Ну вот в пор. Фурляляй объехали бочку, дабы не мочиться, по тому месту, где обычно берег. Это на кат-6. Рыбы, соответственно, очень мало.

Черника на высоких местах уже есть (а морошка - еще не созрела, чудеса, инверсия), грибов сколько хочешь, комар тоже имеется.

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

Народу - много, один раз даже не смогли встать там где хотели (собственно, на Фурляляе), а второй раз даже и не пытались встать в правильном месте (на Поалле).

Ну и дети счастливы, да.

42

Случился ответ на главный вопрос жизни, вселенной и всего такого!
  • Всем, кто дозвонился, написал и т.п. - спасибо, не могу ответить каждому, только оптом. Что и делаю тут.
  • Всем, кто не дозвонился, - тоже спасибо. Не смог принять ваш звонок, был в пути.

LibRaw 0.15.0-Alpha1

По традиции, кроме формального анонса LibRaw 0.15 Alpha1 (Changelog под катом) еще и небольшой описание своими словами, что же именно сделано.
  1. Всосана свежая версия dcraw со всеми ее изменениями в логике (распаковкой в отдельный буфер, изменениями в расчете уровня черного и проч.).
  2. Поддержаны все форматы, поддерживаемые dcraw (+ немножко технических камер), в том числе:
    • DNG сжатый с потерями (и прочие упражнения с DNG, привнесенные 4-м Лайтрумом)
    • "Новые" Фовеоны. Ну, они условно новые т.к. формат поменялся еще в DP1, но вот начиная с DP1/SD15 и вплоть до самоновейшей SD1 Merill - все поддержаны.

      Правда для этих новых форматов нет никаких коррекций цвета. Вот что камера выдает (есть некий профиль всех этих камер в пузе), то конвертируем в выходной профиль и выдаем. Результат бывает разный, когда цвет ничего, а когда и смутительный.

    • Fuji X1-Pro. Как и в dcraw, для нее работают только две интерполяции, билинейная и VNG.
  3. Достигнута побитовая совместимость с выдачей dcraw 9.16 для всех протестированных форматов (а тестами не покрыты только очень старые мыльницы и задники Sinar).
  4. Все ускорения, сделанные в предыдущих версиях - временно припрятаны, но будут постепенно возвращены назад.

Формальный Changelog относительно версии 0.14.6:

LibRaw 0.14.7

По традиции, анонсирую и тут.

Вышла LibRaw 0.14.7 в которой поддержаны камеры, вышедшие в последние полгода:

  • Canon: 5D Mark III, G1 X, 1D X и Powershot SX200
  • Nikon: D4,D800/D800E и D3200
  • FujiFilm: X-S1 и HS30EXR
  • Casio EX-Z8;
  • Olympus E-M5
  • Panasonic GF5
  • Sony: NEX-F3, SLT-A37 и SLT-A57
  • Samsung: NX20, NX210 и NX200 с новыми версиями firmware
Если вы пользуетесь каким-то варезом, использующим LibRaw (RawDigger :), Darktable, digiKam, Photoacute, что-то использующее FreeImage, да и вообще этого софта развелось в последнее время), требуйте обновления LibRaw у авторов соответствующего софта.

Остальные камеры и форматы, добавленные в dcraw 9.15 (Lossy DNG, Fuji X1-Pro, новые Сигмы), будут поддержаны в LibRaw 0.15. Поддержать их в 0.14 (т.е. с сохранением бинарной совместимости библиотек) нет никакой возможности.

P.S. RawDigger будет обновлен не очень скоро. Там уже используется LibRaw 0.15 (пре-альфа), вернуться к 0.14 малореально.

Pages