Linux

Не было у бабы забот.....

И привезли ей (т.е. мне) компьютеров китайских:

Извините за качество, телефоном.

Судя по рассказам, тот секс, который был с Linux в начале 90-х - жалкое подобие того секса, который происходит с этими палочками сейчас.

О новых технологиях

Со страху заменил оставшиеся в сторадж-боксе старые сигейтовские SAS-овские терабайтники (2008-го года) на терабайтные же WD RE4 (SATA). Старые - пусть дискетками поработают.

Результат:

  • +10% к трансфер рейту, было ~630-650Mb/sec на чтение-запись, стало 720-730.
  • Минус 10 градусов к температуре, старые диски грелись до ~42C, нагревая соседей до 35, а теперь 30 градусов, при том что в комнате 22, а ящик стоит в шкафу, который висит на теплой стене).

Чтобы два раза не вставать: в этом же ящике с середины сентября живет 400-ваттный безвентиляторный БП Seasonic. Впечатления самые благоприятные: хрен с ним с шумом, этот питальник холодный. Понятно что гружу я его отсилы ватт на 200 (8x10вт диски, 65вт. CPU, карточки тоже теплые, а значит жрут, вентиляторы крутятся), но 500-вт Thermaltake, который там стоял до того, грелся при такой нагрузке вполне самостоятельно.

Стоит этот питальник неприлично, но если бороться за тишину или температуру, то он - хороший. Во второй сервер купил такой же, потому что тамошний Zalman тоже противно греется.

Домашний стораджбокс: производительность iSCSI/SRP, FreeBSD/Linux

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

Помня о весенних результатах (когда тестировался доступ по Infiniband к RAM-диску), я не стал тратить много времени на Samba (хотя и померял, см. ниже) и вдумчиво тестировал только iSCSI/SRP варианты.

Hardware

Клиент: Intel i7-2600K без оверклока, 16Gb RAM (DDR3-1600), Windows7. Файрволл выключен, антивирус деинсталлирован (с антивирусом получается весело, но результаты невоспроизводимы).

Сервер: Intel i5-2400 без оверклока, 8GB RAM, Adaptec ASR-5805, 6x Seagate Barracuda ES.2 SAS 1Tb + 2 WD RE4 SATA 1Tb, объединены в RAID-6 (контроллер ругается, что SAS и SATA смешаны в одном томе, а мне плевать).

Сеть: Mellanox Infinihost Ex III (MHEA28-XTC), 10(8) Gbit/s, две карты соединены кабелем.

Сетевые протоколы: iSCSI (по IPoIB), SRP (SCSI RDMA Protocol).

Серверный софт:

  1. Ubuntu Server 12.04, драйвера Infiniband и iscsitarget из поставки, scst из гнезда (trunk), при установке scst ядро патчилось согласно инструкции.
  2. FreeBSD 9.1 Prerelease (свежий cvsup), istgt из портов.
SRP поддерживается только scst, остальные два варианта работали по iscsi.

Клиентский софт: iSCSI initiator из комплекта Win7. Infiniband SRP Initiator из комплекта Infiniband-драйверов openfabrics.org (OFED 3.1).

IPoIB Connected Mode у OFED 3.1 работает только Windows-Windows (в 3.0 работало Windows-Linux). Возможно, причина не в Windows-стороне, а в других драйверах с Linux-стороны, детально не разбирался, жил с MTU 2044.

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.

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

Звезды сошлись, руки дошли и я собрал таки стораджбокс, как и собирался уже полгода
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. Потому как ситуация, когда один диск вылетает - она случалась уже да.

10G дома: Infiniband + FreeBSD

Я тут интересовался про Infiniband и FreeBSD, теперь могу и сам рассказать :)

Datagram mode

Для начала нужна FreeBSD 9. У меня - какая-то, cvsup делал где-то в январе или около того.

Далее все тривиально:

/etc/make.conf:

WITH_OFED=yes
Конфиг ядра (в GENERIC это место не включено) /sys/amd64/conf/OFED:
include GENERIC
options OFED # Infiniband protocol stack and support
options SDP # Sockets Direct Protocol for infiniband
device ipoib # IP over IB devices
device mlx4ib # ConnectX Infiniband support
device mlxen # ConnectX Ethernet support
device mthca # Infinihost cards
У меня карты mthca, остальные два драйвера в моем случае вероятно не нужны.

Далее все просто:

cd /usr/src
make buildworld && make installworld # поставит IB-шный утиль, всякие ibstat и opensm
make buildkernel KERNCONF=OFED && make installkernel KERNCONF=OFED

Что-то из этого добра (то ли userland IB-шный, то ли ядро) не собирается clang-ом, поэтому про CC=clang стоит забыть.

Если нужен Subnet manager (на другом конце линка/свитче его нет), то opensm_enable=YES в rc.conf (а если нету /etc/rc.d/opensm, то накатить его mergemaster-ом).

Бутимся....

10G дома: новые бенчмарки на Myricom

Опробованная вчера новая бенчмарка (с подсчетом md5 по куче файлов) сделана и для Myricom. Вкратце (сервер, время 1-й попытки, время 2-й попытки)

  • Win7: 2:10,2:09
  • Linux, Samba: 5:10,5:01
  • Linux, iSCSI: 1:37, 1:00

Бенчмарка "копирование Qt" оказалась очень чувствительной к количеству свободной памяти на машине. Что-то оно там префетчит, если памяти много. Как следствие, сравнение копирований между моими записями - неверное занятие. Внутри каждого отдельного поста - консистентно.

Мораль:

  • На крупных потоках один хрен, что IB, что Myricom (ну для IB я намеривал скорости побольше, но это неважно).
  • С Win7-"сервером" Myricom несколько быстрее IB. Не знаю почему.
  • С Linux-сервером - практически один хрен, что по Samba (медленно), что по iSCSI (быстро)
При этом IB-карты дешевле и двухпортовые т.е. на сервер и две WS нужны три карты, а не 4. Ну и SRP, MPI и прочие Infiniband-развлечения. Минусы тоже есть: не поддерживаются маками (Myricom - поддерживается), требуются пляски с IB-стеком, OpenSM опять же.

Завтра расскажу, как Infiniband c FreeBSD сочетается.

10G дома: Infiniband, Linux, Samba, iSCSI, SRP

Для начала картинка. Это SRP (SCSI RDMA Protocol), поднятый на Linux, клиент - Windows 7.

Если сравнивать с картинкой для iSCSI поверх Myricom (вторая картинка в этом посте), то выросла скорость на мелких блоках и нет падения на блоках больше 256к.

Но по порядку.

10G дома: Myricom, Windows-SMB, iSCSI

Продолжаю развлечения с 10G между двумя рабочими станциями.

Windows - Windows

Запускаю на обеих машинах Win7, на одной делаю Ramdrive на 8G, расшариваю его прямо windows-средствами, запускаю Atto disk benchmark, получаю вот такую картинку:

Каких-то настроек на серверной стороне я не делал, я их и не знаю.

Картинки с Самбы на той же машине (для сравнения) запрятаны в этом посте.

Как видим, на мелких блоках стало побыстрее в 1.5-2 раза (2 раза - для блока 8к), на больших блоках - незначительно медленнее.

Копирование крупных файлов идет с примерно той же скоростью, в районе 500-600MB/sec, то есть быстрее, чем можно надеяться имея в массиве разумное для дома количество HDD под этой сетью. Про копирование мелких файлов будет ниже и отдельно.

10G дома: Myricom + Samba

Продолжаем развлекаться с 10G. Сначала картинка, чтобы было веселее. Это копирование с локального диска на "NAS"

Под катом - как она получена (и почему NAS в кавычках)

И еще о Linux (holy war!)

Что-то давно я Linux не троллил!

Когда мы делали Спамтест (который стал затем Kaspersky Antispam), чудовищным гемороем было изготовление дистрибутивов для Linux:

  • продукт поставлялся в бинарниках;
  • продукт интегрировался в MTA (штук 5 разных, от Sendmail до Qmail) путем патченья их конфигов;
  • Ну и хотелось поддержать, по возможности, все, что хоть как-то двигается.
С третьей задачей мы не справились, ибо количество способов, которыми расположены стартап-скрипты, конфиги и т.п. - поражало воображение. Имелся список поддерживаемых дистрибутивов (на которых сами тестировали, слава VMWare), а если у вас не оно - ну сами ставьте, документация есть.

Вчера я убедился, что за прошедшие 7-8 лет ситуация не изменилась. Ну вот драйвера для видеокарт ATI (которые бинарные). Казалось бы, ну kernel module, модуль в X11, библиотеки. Ну значит определи архитектуру, версию kernel (если драйвера разные), версию X11 - и ставься себе.

Однако хрен.

Linux A

Вы не поверите, но тулза про которую я спрашивал в прошлом посте называется GNOME System Monitor и делает ровно что надо: и цифрами и графиком и чаще раза в секунду и вообще. В GNOME-based системах должна быть просто с раздачи. Разные CPU можно красить в разные цвета, я просто поленился это делать для 24-х, да и цветов всяко не хватит.

Ей бы еще окошко с interrupt rate и вообще была бы лафа.

P.S. Подозревавшуюся проблему с affinity отловил, она там есть.

Linux Q

Граждане Линуксоводы!

Имею вопрос: есть ли к mpstat какой-нибудь GUI, ну вроде как в винде Performance Monitor? Мне надо смотреть load по ядрам, а то есть подозрение, что программа (чужая) в смысле affinity маленько безобразничает.

Дополнительное пожелание: уметь самплить чаще чем раз в секунду, 100-200 ms были бы в самый раз.

Про mpstat -P ALL я в курсе, только вот ядер - 24 штуки и никакая разумная история, ну хоть за 10 секунд, на экране никак не помещается.

Holy War (Linux vs FreeBSD)

Вынесу из каментов к прошлому посту:

номер раз:

Это значит что с дисковой/fs в линуксе все настолько загадочно и хреново, что у нас ротейт логов на одной из машин роняет ее регулярно раз в месяц (логи то ротейтятся мгновенно, только апач больше не работает) и помогает только reboot -fn. А на десктопе при копировании больших файлов все задумывается так что анекдот про "сейчас дискетка отформатируется..." как раз про современные Линуксовые ядра. Debian/2.6.разные, ext3/4.

номер два:

Я ловил клина на полминуты только при удалении больших пачек больщих файлов (ie по полгига где-то)

Типа записал жене сериал/дитю мультиков на болванку -- хочешь грохнуть исошку/исходники -- и оно тупит минуты две. В 2.6.39 xfs порефакторили сильно (осталась только его "родовая" болезнь -- файл при создании и до закрытия (или до fsync?) имеет только dnode, и если начать копировать файл (ту же исошку) и в середине дернуть питание -- файл будет пустой)

С другой стороны у меня 4 машины с XFS везде кроме /boot и убитого XFS я не видел еще (хотя питание у меня тут весьма нестабильное)

И, рискуя (стремясь!) спровоцировать Holy War, спрошу я вас: че, типа, так и есть?. И считается нормальным? Ну ладно, xfs вроде починили, но ведь было?

Update: в каментах сообщили правильное название, "баг 12309". Поиск в Яндексе "Linux 12309" приносит истинные лулзы!

Справедливости ради два пункта:

Linux vs FreeBSD

Не могу не попиарить мегатред про Linux vs FreeBSD (зачин: Рамблер-почта переезжает с FreeBSD на Linux, там же в каментах про аналогичный переезд Яндексовского кластера).

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

  • виртуализация;
  • средства разработки (и не только поминаемый valgrind, но и VTune, например);
  • вообще поддержка новых технологий: OpenCL, CUDA (это если брать мои интересы), Java опять же.
  • да и вообще ВСЕ: Linux стал mainstream, а FreeBSD - увы.
То есть, натурально, единственный настоящий плюс, который я вижу у FBSD на сегодня - это ZFS (ну и разные мои личные тараканы: от iptables меня тошнит, а от ipf - нет). Ну и монолитность, да, выбрать "Linux-дистрибутив", где все было бы достаточно свежим, но при этом не долбанутым на всю голову - лично мне достаточно трудно, ну так у меня и опыта такого мало, впрочем.

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

Суббота для человека или человек для субботы?

Со всевозрастающим изумлением читаю дискуссии про memcpy, glibc, Линуса, Adobe и Дреппера:

(русскоязычные - они свежие, на LWN все уже отшумело три месяца назад).

И думаю я следующую думу: сама тема не оставляет (девелоперов) равнодушной, раз столько понаписали, делит девелоперов на 10 две группы очень четко. Причем, для меня ответ очевиден, равно как он столь же очевиден (но другой) для другой группы.

А значит - это прекрасный вопрос для собеседования, причем важен не столько ответ, сколько его объяснение, а за вторую сторону можно легко потроллить. Я бы сказал, что от PM и выше - просто обязательный вопрос, а для кодеров - мировоззренческий. И не надо собирать в одной команде (компании, стране, вселенной) людей, отвечающих на этот вопрос по-разному.

Для тех кто в танке, суть проблемы (при взгляде с одной из сторон):

Сложно даже найти подходящие слова....

... приличествующие анонсу двух ссылок:

Debian OpenSSL Predictable PRNG Toys
Исходное сообщение в DSA: DSA-1571-1 openssl -- predictable random number generator
Удивительный подход: ради ублажения Purify взяли и убрали две нужных (жизненно необходимых!) строчки.

Пользуясь случаем, в очередной раз вытираю ноги о миф, что открытость исходников - это путь к надежности. Баге - почти два года, система распространенная, сколько сейчас будет "взломов" (и без кавычек - тоже) - страшно подумать.

Subscribe to Linux