• «Не опять, а снова»: подводный кабель Sea-Me-We 3 вышел из строя второй раз за год
    –1
    Судя по сообщениям, основной источник провреждений — это якори судов, а не подвижки земной коры. И 4 метра — это, скорее всего, как раз вниз — заглубление снижает шансы быть зацепленным якорем. В прибрежных зонах кабели как правило закапывают — как раз по этой причине.
  • Производительность mdadm raid 5,6,10 и ZFS zraid, zraid2, ZFS striped mirror
    +1
    Очевидно, выставить recordsize=4k до начала тестирования
  • Производительность mdadm raid 5,6,10 и ZFS zraid, zraid2, ZFS striped mirror
    0
    Строго говоря у SSD есть разница между рандомной и последовательной записью из-за продвинутости контроллера, сжатия и пр. Но она крайне незначительна, что видно на вашем тесте ext4 single для write и randwrite.
  • Производительность mdadm raid 5,6,10 и ZFS zraid, zraid2, ZFS striped mirror
    +1
    Кстати, пропустил интересный аргумент. Это же SSD, у которого нет разницы в randwrite и sequential write. У вас в последнем тесте IOPS на ext4 в write и randwrite одинаковы, так с чего бы вдруг такая разница у ZFS? Кэши на запись?
  • Производительность mdadm raid 5,6,10 и ZFS zraid, zraid2, ZFS striped mirror
    +2
    Тут надо заметить, что то, с каким размером блока оперирует файловая система, не означает, что приложение внутри нее делают рандомную запись и чтение такими блоками. Исходя из вашей информации, у вас вероятно полная виртуализация (не контейнерная), из чего следует, что команды чтения передаются виртуальному блочному устройству, в случае с какой-нить WinXP — виртуальному SATA контроллеру. Действительно, ОС будет выдавать команды на чтение и запись по 4кб, но это не означает, что это эквивалент 4k randread/randwrite. Я выше писал, какими блоками оперируют базы данных, это означает, что в случае 8k блока, ОС передаcт команды на чтение 2х последовательных 4k блоков.

    Вообще, для такого случая использовать ZFS и хранящийся на ней файл — серьезный оверхед, потому как там для консистентности используется двойная запись (ZIL), для выравнивания надо было сделать zfs set sync=disabled

    Но на самом деле, разговор совсем не о том. А о том, что вы тестировали 4k randread/randwrite фактически на устройстве с 128k блоком, в сравнении с 4k ext4, а вопрос был уже задан выше — что вы намеряли?
  • Производительность mdadm raid 5,6,10 и ZFS zraid, zraid2, ZFS striped mirror
    +1
    Вы точно уверены, что я путаю? ashift имеет отношение к таблице разделов, и это выравнивание первого блока в файловой системе, чтобы он не пересекал границы блоков физических устройств. И последние года 4 использование неправильного ashift не дает негативного эффекта, по причине особой умности современных SSD. А recordsize — это размер блока, которым производится запись и чтение. Если вы читаете/пишете 4к рандомно, то вы читаете/пишете с диска 128к (не считая неполных блоков). Этим и объясняется разница в результатах write и randwrite (где нет никаого ARC)
  • Производительность mdadm raid 5,6,10 и ZFS zraid, zraid2, ZFS striped mirror
    +1
    Я правильно понимаю, что вы тестируете 4k блоками ZFS с дефолтным recordsize=128k? В начале статьи упомянуты виртуальные машины, но не упомянуты методы виртуализации, и как диски машин хранятся на файловой системе. Без оглядки на виртуализацию (внутри виртуалок обычно работают реальные задачи) для MySQL/InnoDB размер recordsize должен равнятся 16k (по умолчанию), для PostgreSQL — 8k. Если у вас предполагаемая нагрузка не БД, а отдача файлов, то тестировать надо вообще блоками по 128k.
    Ну и ARC для zfs выключается zfs set primarycache=metadata, если нужно оценить его влияние на скорость чтения. Ну и 10Гб — весьма странный объем данных для тестирования, сейчас памяти в серверах в разы больше, для устранения влияния кэшей размер должен быть больше объема памяти на порядок.
  • Mysql PARTITION BY YEAR(date) / MONTH(date) / DAYOFWEEK(date)
    0
    Если выполните TRUNCATE TABLE — то уменьшится
  • Андрей Карпов считает, что код проекта Manticore качественнее, чем код проекта Sphinx
    +1
    У меня сложилось впечатление, что в Sphinx отсутствие проверок на ошибочные данные было/стало скорее фичёй. Это следует из оборачивания проверок в assert() — в случае реально возникающей проблемы (а не гипотетической), запускается дебажная версия, и баг фиксится, а в продакшене ресурсы процессора на бесполезные проверки не расходуются. Я, правда, столкнулся с ситуацией, когда дебажная версия всегда падает на определенном запросе к определенному набору данных, а обычная — работает. Да и не выставишь дебажную версию в продакшен — она не справляется с нагрузкой (к вопросу об оверхеде), а некоторые проблемы вылезают только там (видмо есть race condition). Еще можно отметить трудноуловимые глюки с тредами под FreeBSD, из-за чего пришлось перенести его на линукс, где эта скульптура из подпорок находится в более сбалансированном состоянии ;) Но в целом альтернатив Sphinx по производительности нет.
  • Вы уволили самого талантливого сотрудника. Надеюсь, теперь вы довольны
    +6
    И еще мне кажется, это часть большой истории о том, как в перспективный стартап пришли венчурные инвесторы, жаждущие тысяч процентов роста, а основатели и управленцы не были готовы к взрывному росту. Набрали кучу разработчков, но основатель сопротивлялся, а менеджмент с ним не справился. В результате недовольные инвесторы сменили менеджмент и дали новой команде возможность приступить к полному переписыванию всего проекта с нуля.
    «Капитализм!» (с) к/ф Красная Жара
  • Вы уволили самого талантливого сотрудника. Надеюсь, теперь вы довольны
    +18
    В оригинальной статье как-то вскользь, но отмечено, что команду управленцев уволили первыми.
    His manager shares in this responsibility. In fact, the original management team was held accountable: they were let go first.
    Ну а то, что акцент в статье сделан на личности Гения, а не на управленческих просчетах, можно списать не на предвзятость автора, а на то, что это было первопричиной проблем. Возможно, Гений был основателем стартапа, но не смог доверить развивать свое детище другим разработчикам
  • Наш рецепт отказоустойчивого VPN-сервера на базе tinc, OpenVPN, Linux
    +1
    Не совсем ясно, зачем нужны дополнительные точки отказа, у клиента могут быть для этого какие-то свои причины, а может быть просто непонимание этого. Может пропасть связанность между VPS и ДЦ клиента, может отвалиться туннель tinc в ДЦ клиента. Обычно стараются терминировать VPN как можно ближе к оборудованию, к которому будет предоставлен доступ.
  • Наш рецепт отказоустойчивого VPN-сервера на базе tinc, OpenVPN, Linux
    +1
    «Мы засунули твой VPN в VPN, чтобы… ». Не совсем понятна причина разнесения узлов с OpenVPN по каким-то VPS, при том, что «сервис клиента», к которому нужно получать доступ, находится в другом ДЦ/офисе, с одним или несколькими каналами. В это самое место и надо ставить OpenVPN. Если ДЦ несколько, с разными блоками адресов (но предположительно L2 VPN между ними), то ставить в каждый ДЦ OpenVPN.
    Выдавать адреса ДНСом с TTL 0 — ну в принципе не самая плохая затея, но неплохо бы проверять доступность узлов, и выкидывать их при авариях. Но все равно будут перерывы в доступности из-за кэширования ДНС записей.
  • Директор Linux Foundation использует Mac OS X, анонсируя «год Linux на десктопах»
    –1
    В Microsoft во времена Балмера сотрудникам запрещалось крайне не рекомендовалось носить iPhone, и использовать опенсорсный софт. Балмер обозвал Линукс раком, и открытые лиценции (типа GNU) — вирусными, заражающими тех кто к ним прикасается. Так что в Майкрософт — вполне себе религия, по крайней мере была раньше.
  • Тайминговая атака на Node.js — когда время работает против вас
    +1
    В первом же примере сравнивается токен, также это может быть и идентификатор сессии. Угнать чужую сессию — это, конечно, не пароль узнать, но не менее эффективно в некоторых случаях
  • Oracle фактически ликвидирует Sun
    0
    Jail во FreeBSD был в то время небольшим патчем сетевой подсистемы для функционала chroot, а chroot существовал с незапамятным времен. В то время в соляре уже был менеджер ресурсов (память, CPU) для приложений, чего в джейлах нет до сих пор. Конечно, какие-то идеи они позаимствовали из джейла, какие-то — из эмулятора (сисколлов) линукса
  • Не виноватая я. Он сам пришел
    +11
    Больничные по ТК оплачивает государство (фонд соц страхования) и, скажем так, далеко не в полном объеме. Компании от них ущерб разве что в нехватке рабочих рук и срыве сроков
  • ZFS — лучшая файловая система (пока)
    +2
    Надо отдать должное NetApp — у них получился действительно инженерный шедевр, от железа до метрик. Вот только стоимость их решений доступна лишь очень жирным котам. Революционность ZFS в том, что Sun взяли годные идеи NetApp, и переписали их, избегая запатентованных технологий, и открыли исходники. Как-то давно примерно так поступил Торвальдс и GNU.
    Так что скажем спасибо IBM за многомилионные мейнфреймы, благодаря которым у каждого есть дешевые компьютеры, скажем спасибо NetApp, что их разработки, окупившись в энтерпрайзе, пошли «в народ», и скажем «спасибо» Ораклу, похоронившему дальнейшую разработку ZFS, благодаря чему мы застряли в прошлом десятилетии с файловыми системами.

    P.S.: Снапшоты при помощи систем виртуализации для файлового хранилища — это как-то странно. У решений поверх стандартных файловых систем они дадут значительно больший оверхед, у VMWare они интегрированы с файловой системой (=тот же подход, что у wafl/zfs)
  • Снимаем и вносим наличные в банкомате с помощью смартфона. Впервые в мире
    0
    Пин-код от карты, отжатой мускуклистыми молодцами, можно попытаться не сказать, а вот не показать лицо банкомату — несколько сложнее. Или Сбербанк будет распознавать эмоции?
  • Как быстро удалить множество строк из большой базы в MySQL
    +5
    Удаление (да и вообще модификация) записей через LIMIT в случае statement-based репликации — не самая хорошая идея. Лучше уж использовать диапазон значений первичного ключа (id >= 5000 AND id < 10000).
    Также, в отдельных случаях может быстрее оказаться выбрать оставляемые записи в новую таблицу, на старую сделать truncate, и залить данные обратно. Или просто удалить таблицу, если в нее не ведется запись, а новую переименовать
    Ну и конечно, можно таблицы партицировать, в том числе и по времени, и удалять ненужные партиции целиком.
  • Магия SSH
    +1
    Такие опции будут выдавать Warning при подключении, если не указать -o LogLevel=ERROR. Ну и конечно, их можно не указывать каждый раз, а засунуть в конфиг — ~/.ssh/config:
    StrictHostKeyChecking=no
    UserKnownHostsFile=/dev/null
    LogLevel=ERROR

    Что касается возможного MiTM — ну на сервере в консоли как правило не вводят конфиденциальные данные. А вот проброшенный SSH-агент (ForwardAgent=yes) может представлять интерес для такой атаки
  • Как в «Додо Пицца» потеряли 8 миллионов за один час из-за технической ошибки, а потом вернули
    0
    Вернуть деньги можно только тому, кто их перечислил. И судя по плате за SMS уведомления это были вполне реальные люди
  • Как в «Додо Пицца» потеряли 8 миллионов за один час из-за технической ошибки, а потом вернули
    +3
    судя по статье, это были реальные платежные операции из копии продакшен-базы, которые в результате «обезличивания», (а вернее чистки части данных с продакшена), потеряли связь с заказами. А поскольку транзакции и реляционная целостность в современном мире считается устаревшим подходом, для приведения базы в порядок был специальный сервис, отменяющий платежные операции, не привязанные к заказам. Интересно, почему на продакшене нельзя было делать этого вручную, или может даже исправить причину появления таких операций?
  • Аудит изменения данных PostgreSQL
    0
    На мой взгляд, идея не самя удачная — WAL логи не слишком хорошо подходят для извлечения из них запросов, это лог изменения данных на диске. Из самих WAL файлов (без наличия реплики с реплицированной базой) эту информацию извлечь невозможно.
  • Zabbix 3.X: мониторинг контролеров Adaptec в Windows Server (Hyper-V Core)
    0
    Если серверов — десятки, то лучше мониторить количество логических дисков с статусом отличным от optimal, и на него повесить триггер. Читать текст SMART в заббиксе — странная идея, если есть реальная необходимость в ранних предупреждениях, то надо мониторить конкретные параметры. Но вообще сбой одного диска — вполне нормальная ситуация для RAIDа, зачем слушать подземный стук, когда проще заменить диск после выхода из строя?
  • Файлы для Windows с DRM-защитой можно использовать для деанонимизации пользователя Tor
    +4
    Для обладателей VLC (и не только) подойдет такой вариант — делается m3u8 плейлист с HLS потоком, и урлом для запроса ключа расшифровки. Отдается этот m3u8 как application/octet-stream, юзер скачивает и запускает его. Никаких 10k$ не нужно
  • Шустрый, удобный и кроссплатформенный профилировщик C++ кода
    0
    Мне кажется, что на Mac/FreeBSD/Solaris лучше использовать DTrace
  • Как мы Redis Cluster готовили
    +1
    не нужен никакой двойной объем памяти, CoW существует с незапамятных времен. Форк процесса редиса наследует его память в состоянии «снапшота», и просто записывает ее на диск, упаковывая в более компактный формат хранения
  • PostgreSQL slave + btrfs и systemd = горячая тестовая база
    0
    Вероятно, имелось ввиду что девелоперская база находится в DMZ и снаружи недоступна. Непущать разработчиков продакшен базу — в целом здравая идея. Пусть разрабатывают набор начальных данных для заливки на тестовую базу. И на все вопросы отвечают — а у нас все работает ;)
  • PostgreSQL slave + btrfs и systemd = горячая тестовая база
    0
    Загрузка полного дампа на больших базах — это последнее средство, когда все плохо. У меня только дамп базы делается несколько дней, загрузка его — раза в полтора-два дольше. А накатывание архивлогов ведется в один поток, и при большом потоке изменений в базе накатить логи за 4 дня займет едва ли не сутки.

    В этом случае снапшоты — наше все. Они в случае btrfs практически бесплатные — то есть расходуют только занимаемое место, по объему примерно как сжатые gzip'ом архивлоги. Хранить их можно, пока свободное место позволяет (процентов до 20).

    Снапшоты в btrfs — записываемые (вернее, доступен для записи каталог, куда снапшот монтируется). Нет необходимости переводить основную реплику в мастер, можно поднять еще один постгрес (лучше еще один контейнер) на снапшоте и его перевести в мастер. В этом случае не придется нагонять репликацию — у вас всегда будет актуальная реплика, с нее можно снимать дампы (хотя в этом есть нюансы).
    В таком сценарии делать снапшоты базы без ее остановки весьма удобно — у вас всегда есть некоторое количество снапшотов, для отката базы или для поднятия тонких копий в качестве девелоперской базы
  • PostgreSQL slave + btrfs и systemd = горячая тестовая база
    +1
    Нет особого смысла хранить архивлоги за большой период. Если только вам не нужно откатиться на заданную минуту в прошлом, тогда пригодятся и снапшоты и архивлоги. Для случаев отставания реплики достаточно периода в несколько дней. Само отставание (в секундах) мониторить можно так
    select extract(epoch from now() - pg_last_xact_replay_timestamp())::integer

    Останавливать базу для создания снапшота необязательно, достаточно выполнить два запроса
    psql -U pgsql postgres -t -A <<EOT
    SELECT select pg_xlog_replay_pause();
    CHECKPOINT;
    EOT
    

    и после создания снапшота
    psql -U pgsql postgres -t -A -c "select pg_xlog_replay_resume();"
    


  • «Пьяная» база данных: как на 1 базе мы сделали 7 тестовых площадок, причём у каждой — свой собственный инкремент и дифф
    +1
    В крупных компаниях управлять Delphix все равно будет админ (как минимум настраивать полномочия для представителей каждой из 4х групп разработчиков), да и обычно разбираться в интерфейсе никому не охота, а отправить письмо «Вась, откати базу db4 на вчера» куда проще. Но ок, запишем это как преимущество.
    Никакой экономии пространства у Delphix по сравнению с клонами нет.
    Снапшоты — почти эквивалент откатыванию на любой период времени, с поправкой на частоту их создания. Точность до секунды для дев-БД врядли нужна.
    Вебинтерфейс для управления снапшотами есть и у СХД
  • «Пьяная» база данных: как на 1 базе мы сделали 7 тестовых площадок, причём у каждой — свой собственный инкремент и дифф
    +1
    Для решения такой задачи обычно обходятся клонами («тонкими» копиями), либо основной базы, либо ее реплики. Клонирование умеет делать некоторое количество СХД (NetApp в часности), ZFS, BTRFS, а также системы виртуализации (VMWare). Если СХД уже есть, то лицензия на клонирование явно будет дешевле, а главное проще внедрения нового ПО. Сами клоны «бесплатны» по занимаемому месту, увеличивается лишь число iops (причем чтение оседает в общем для всех клонов кэше)
  • FreeNAS 10 — новое лицо старого хранилища
    0
    Вы говорите о вполне узком случае. Могу тоже рассказать про кэширующие сервера, для которых был выбран XFS, потому как на ext4 удаление файла — долгая блокирующая операция, и один тред nginx, чистящий кэш, не успевал его чистить. Есть сценарии для применения XFS, есть и для ZFS. Я, например, не представляю, как бы я держал девелоперские копии продакшен БД без клонов — объем базы большой.

    Что касается домашних NAS, то HP Microserver — наш выбор ;) Память ECC, но встает и обычная. Ну дороговат стал, но и харды сейчас недешевые.
    Да и потом, сбой в одном байте на фотке или фильме с торрента — не критичен совершенно. А полное разрушение файловой системы от сбоев памяти — все же большая редкость.
  • FreeNAS 10 — новое лицо старого хранилища
    0
    Если надо занять 99% диска для энтерпрайз-использования — это повод задуматься о смене работы =) Вообще говоря все файловые системы в здравом уме резервируют свободное место, и NTFS при полном забивании диска тоже будет тупить. А на домашнем NAS с zfs и полное забивание диска не приводит к полной остановке хранилища, скорость записи и чтения остается приемлемой. Но такая особенность присутствует, надо просто о ней помнить.
  • FreeNAS 10 — новое лицо старого хранилища
    0
    Еще есть предположение, что при большом количестве мелких файлов DDT будет расти. Каждая запись в DDT — 320 байт, их умножить на количество блоков на диске, блок имеет размер 128к (дефолтный recordsize). Из этой математики вытекает 2,5Гб на 1Тб хранилища, но мелкие файлы и последние байты от файлов не кратных 128к, пишутся блоками меньшего размера, так что DDT будет больше. Также в случае изменения recordsize=8k (так например рекомендуется для MySQL) DDT будет уже 40Гб на 1Тб. Для виртуалок же рекомендуется размер блока в 4к.
  • Юридическое лицо? Предоставьте ваш IP-адрес
    0
    Эта статья закона называется "… система обеспечения целостности, устойчивости и безопасности функционирования российского национального сегмента сети «Интернет»", и очевидно конечных клиентов провайдеров не касается
  • FreeNAS 10 — новое лицо старого хранилища
    +1
    Дедупликация годится, когда у вас очень много памяти, и не очень много дискового пространства. ZFS для эффективной работы нужно много памяти и без дедупликации. При дедупликации хранится словарь из контрольных сумм всех блоков на диске — DDT, но для ZFS DDT является просто метаданными, и может быть из памяти вынеснен и на диск, тогда все просто встает
    Дедупликация небесплатная не только по памяти, но и по процессору. При записи каждого блока будет посчитан SHA256 (по умолчанию) от него.
    В некоторых случаях взамен дедупликации можно использовать клоны — «образцовый» датасет снапшотится, и делается его клон, который будет занимать место на диске только за счет записи измененных блоков по отношению к образцовому датасету.
  • LEGO MINDSTORMS Education EV3 в профориентации
    0
    Кстати ПО Home версии для Mac OS жутко глючит. Вернее, глючит воспроизведение видео на первом экране, которое сделано на Silverlight (мир его праху), а сам LabVIEW просто жрет проц когда не надо
  • LEGO MINDSTORMS Education EV3 в профориентации
    0
    В образовательный набор входит аккумулятор, но не входит зарядка для него (китайский зарядник продается на ebay за копейки). Разница в цене между Home и Education что-то порядка 7 тысяч рублей. Если нужен аккумулятор, лучше купить образовательную версию — там пара дополнительных деталей и датчиков есть. Но для домашнего использования батарейки менять дешевле ;) Сам процессорный блок одинаковый, ПО бесплатно и совместимо между Home и Education. При покупке недостающих деталей можно собрать из набора Home всех роботов из Education.