• Определение состояния Memory Pressure в Linux

      Memory pressure -- это состояние, когда системе не хватает свободной памяти. Обычно его разделяют на moderate и critical. Moderate -- это когда памяти "мало, но пока еще жить можно", и дальнейшие выделения памяти могут вызвать проблемы с отзывчивостью из-за активной работы со swap-файлов или сбросов системных буферов и кэшей. Critical -- этап уже более серьезный, означающий "еще чуть-чуть, придет OOM-killer и начнет убивать процессы".

      "Для чего нам это знать и контролировать?" -- на этот вопрос ответ будет в зависимости от того, что именно вы разрабатываете. Известный всем браузер Chromium (на котором основан Google Chrome), например, придерживается тактики "используем всю доступную память": если что-то можно забуферизовать и закэшировать в ОЗУ для ускорения работы, оно обязательно будет сделано. Зато при наступлении moderate memory pressure кэши и буферы очищаются, чтобы освободить пространство для работы других приложений, а при наступлении critical memory pressure браузер начинает выгружать фоновые вкладки, чтобы не допустить активации OOM-киллера.

      Итак, поехали.
    • Туннели и VPN, устойчивые к DPI

        Мы живем в интересное время. Я бы даже сказал, в удивительное. По одну сторону мы видим неких лиц, которые очень хотят знать, о чем между собой разговаривают другие люди, и очень хотят указывать им, что можно читать, а что нельзя. С другой стороны граждане, которые хотят отстоять свои права тайны личной переписки и свободного получения информации, и не хотят, чтобы факты этой самой переписки и получения этой самой информации были использованы против них. Бонусом страдает огромное количество сторонних сайтов, сервисов и бизнесов, которых задевает «ковровыми блокировками».

        Но нет, эта статья не об обществе, а о технологиях.

        image
        Читать дальше →
      • WebAssembly и манипуляции DOM

          Про WebAssembly в наше время слышали, я думаю, практически все. Если Вы не слышали, то на Хабре есть замечательный вводный материал об этой технологии.
          image
          Другое дело, что очень часто можно встретить комментарии вида “Ура, теперь будем писать фронтенд на C++!”, “Давайте перепишем React на Rust” и прочее, прочее, прочее…
          Читать дальше →