home.social

#perfomance — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #perfomance, aggregated by home.social.

  1. backdrop-filter: blur() — как он работает и как его правильно использовать

    Cвойство backdrop-filter: blur() под капотом работает совсем не так, как интуитивно кажется, и это приводит к багам, которые нелегко воспроизвести и довольно сложно объяснить. Потому давайте разбираться.

    habr.com/ru/articles/1057226/

    #web_development #css #blur #gpu #backdrop #composition #rendering #painting #perfomance #layout

  2. backdrop-filter: blur() — как он работает и как его правильно использовать

    Cвойство backdrop-filter: blur() под капотом работает совсем не так, как интуитивно кажется, и это приводит к багам, которые нелегко воспроизвести и довольно сложно объяснить. Потому давайте разбираться.

    habr.com/ru/articles/1057226/

    #web_development #css #blur #gpu #backdrop #composition #rendering #painting #perfomance #layout

  3. backdrop-filter: blur() — как он работает и как его правильно использовать

    Cвойство backdrop-filter: blur() под капотом работает совсем не так, как интуитивно кажется, и это приводит к багам, которые нелегко воспроизвести и довольно сложно объяснить. Потому давайте разбираться.

    habr.com/ru/articles/1057226/

    #web_development #css #blur #gpu #backdrop #composition #rendering #painting #perfomance #layout

  4. Pydantic V2: Почему dataclasses вам ещё больше нужны

    На написание статьи меня сподвигла статья «Pydantic V2: Почему dataclasses вам больше не нужны» и меткий комментарий : «Спасибо за статью, но мне кажется Вы учите детей плохому. » Давайте попробуем разобраться, почему и датаклассы хороши, и pydantic V2 прекрасен, а вместе – они становятся ещё лучше. Или устроить смешанное единоборство?

    habr.com/ru/articles/970648/

    #python #pydantic #dataclass #perfomance #никто_не_читает_теги #разработка #длинное_тире_сам_поставил #производительность #fastapi

  5. Профессия performance инженер: детектив с лицензией на производительность

    Медленная работа базы данных высасывает ресурсы и нервы? Вы не одиноки. Но есть эксперты, способные выжать максимум из вашей инфраструктуры. Расскажем, как перфоманс инжиниринг помогает превратить «тормоза» в «ракету».

    habr.com/ru/companies/postgres

    #perfomance #performance #инженер #профессия #postgres #postgresql #интервью

  6. Профессия performance инженер: детектив с лицензией на производительность

    Медленная работа базы данных высасывает ресурсы и нервы? Вы не одиноки. Но есть эксперты, способные выжать максимум из вашей инфраструктуры. Расскажем, как перфоманс инжиниринг помогает превратить «тормоза» в «ракету».

    habr.com/ru/companies/postgres

    #perfomance #performance #инженер #профессия #postgres #postgresql #интервью

  7. Профессия performance инженер: детектив с лицензией на производительность

    Медленная работа базы данных высасывает ресурсы и нервы? Вы не одиноки. Но есть эксперты, способные выжать максимум из вашей инфраструктуры. Расскажем, как перфоманс инжиниринг помогает превратить «тормоза» в «ракету».

    habr.com/ru/companies/postgres

    #perfomance #performance #инженер #профессия #postgres #postgresql #интервью

  8. Сделал простой тест на скачивание большого файла и сравнил влияние поддержки шифрования TLS на уровне ядра (kTLS) на производительность web-сервера Nginx. Тестовый файл размером 14.3 Gb разместил на файловой системе tmpfs и скачивал его утилитой curl в /dev/null. Для каждого теста использовал по 100 замеров и вычислил среднее значение.

    В настройках Nginx для поддержки kTLS надо активировать поддержку sendfile().

    Теперь в NixOS модуль ssl автоматически загружает в ядро, если активирован web-сервер Nginx.

    Пример настройки Nginx для активации kTLS в NixOS:
    services.nginx.virtualHosts."example.com" = {
    kTLS = true;
    extraConfig = ''
    sendfile on;
    '';
    };

    Результаты тестирования в MBit/sec с разными комбинациями Sendfile и kTLS:
    1) Sendfile off, kTLS off
    - HTTP/1.1 - 4 274,53
    - HTTP/2 - 4 039,19
    - HTTP/3 - 3 321,10

    2) Sendfile off, kTLS on
    - HTTP/1.1 - 3 893,23
    - HTTP/2 - 3 690,46
    - HTTP/3 - 3 344,11

    3) Sendfile on, kTLS off
    - HTTP/1.1 - 4 385,40
    - HTTP/2 - 4 190,42
    - HTTP/3 - 3 320,28

    4) Sendfile on, kTLS on
    - HTTP/1.1 - 5 558,75
    - HTTP/2 - 2 340,39
    - HTTP/3 - 3 306,99

    Мои предположения, что kTLS поддерживает HTTP/3 протокол и то, что скорость скачивания будет достаточно высокой, по сравнению с другими протоколами, оказались неверными.

    В тестах, при скачивании по HTTP/3 протоколу, ядро процессора нагружалось всего до ~60%, по сравнение в 100%, при тестировании на остальных протоколах. Предполагаю, что протокол будут дальше отлаживать и оптимизировать.

    При использовании kTLS и sendfile() значительно проседает скорость скачивания по HTTP/2 протоколу. А всё из-за того, что sendfile(), при включенном kTLS, начинает работать плохо для из-за фрейминга, вызывающий большое количество syscall-ов.

    По итогу, для обслуживание больших статических файлов, рекомендуется включить поддержку kTLS и использовать только HTTP/1.1 протокол. Там, где это невозможно сделать, можно отключить HTTP/2 протокол и использовать остальные протоколы - HTTP/1.1 и HTTP/3. Не смотря на то, что HTTP/3 протокол имеет более низкую скорость скачивания, по сравнению с HTTP/1.1, он всё-равно позволяет ускорить работу сайта за счёт использования других преимуществ.

    Благодарю разработчиков web-сервера Nginx за консультацию и советы!

    #linux #nixos #nginx #sendfile #ktls #perfomance

  9. Сделал простой тест на скачивание большого файла и сравнил влияние поддержки шифрования TLS на уровне ядра (kTLS) на производительность web-сервера Nginx. Тестовый файл размером 14.3 Gb разместил на файловой системе tmpfs и скачивал его утилитой curl в /dev/null. Для каждого теста использовал по 100 замеров и вычислил среднее значение.

    В настройках Nginx для поддержки kTLS надо активировать поддержку sendfile().

    Теперь в NixOS модуль ssl автоматически загружает в ядро, если активирован web-сервер Nginx.

    Пример настройки Nginx для активации kTLS в NixOS:
    services.nginx.virtualHosts."example.com" = {
    kTLS = true;
    extraConfig = ''
    sendfile on;
    '';
    };

    Результаты тестирования в MBit/sec с разными комбинациями Sendfile и kTLS:
    1) Sendfile off, kTLS off
    - HTTP/1.1 - 4 274,53
    - HTTP/2 - 4 039,19
    - HTTP/3 - 3 321,10

    2) Sendfile off, kTLS on
    - HTTP/1.1 - 3 893,23
    - HTTP/2 - 3 690,46
    - HTTP/3 - 3 344,11

    3) Sendfile on, kTLS off
    - HTTP/1.1 - 4 385,40
    - HTTP/2 - 4 190,42
    - HTTP/3 - 3 320,28

    4) Sendfile on, kTLS on
    - HTTP/1.1 - 5 558,75
    - HTTP/2 - 2 340,39
    - HTTP/3 - 3 306,99

    Мои предположения, что kTLS поддерживает HTTP/3 протокол и то, что скорость скачивания будет достаточно высокой, по сравнению с другими протоколами, оказались неверными.

    В тестах, при скачивании по HTTP/3 протоколу, ядро процессора нагружалось всего до ~60%, по сравнение в 100%, при тестировании на остальных протоколах. Предполагаю, что протокол будут дальше отлаживать и оптимизировать.

    При использовании kTLS и sendfile() значительно проседает скорость скачивания по HTTP/2 протоколу. А всё из-за того, что sendfile(), при включенном kTLS, начинает работать плохо для из-за фрейминга, вызывающий большое количество syscall-ов.

    По итогу, для обслуживание больших статических файлов, рекомендуется включить поддержку kTLS и использовать только HTTP/1.1 протокол. Там, где это невозможно сделать, можно отключить HTTP/2 протокол и использовать остальные протоколы - HTTP/1.1 и HTTP/3. Не смотря на то, что HTTP/3 протокол имеет более низкую скорость скачивания, по сравнению с HTTP/1.1, он всё-равно позволяет ускорить работу сайта за счёт использования других преимуществ.

    Благодарю разработчиков web-сервера Nginx за консультацию и советы!

    #linux #nixos #nginx #sendfile #ktls #perfomance

  10. Сделал простой тест на скачивание большого файла и сравнил влияние поддержки шифрования TLS на уровне ядра (kTLS) на производительность web-сервера Nginx. Тестовый файл размером 14.3 Gb разместил на файловой системе tmpfs и скачивал его утилитой curl в /dev/null. Для каждого теста использовал по 100 замеров и вычислил среднее значение.

    В настройках Nginx для поддержки kTLS надо активировать поддержку sendfile().

    Теперь в NixOS модуль ssl автоматически загружает в ядро, если активирован web-сервер Nginx.

    Пример настройки Nginx для активации kTLS в NixOS:
    services.nginx.virtualHosts."example.com" = {
    kTLS = true;
    extraConfig = ''
    sendfile on;
    '';
    };

    Результаты тестирования в MBit/sec с разными комбинациями Sendfile и kTLS:
    1) Sendfile off, kTLS off
    - HTTP/1.1 - 4 274,53
    - HTTP/2 - 4 039,19
    - HTTP/3 - 3 321,10

    2) Sendfile off, kTLS on
    - HTTP/1.1 - 3 893,23
    - HTTP/2 - 3 690,46
    - HTTP/3 - 3 344,11

    3) Sendfile on, kTLS off
    - HTTP/1.1 - 4 385,40
    - HTTP/2 - 4 190,42
    - HTTP/3 - 3 320,28

    4) Sendfile on, kTLS on
    - HTTP/1.1 - 5 558,75
    - HTTP/2 - 2 340,39
    - HTTP/3 - 3 306,99

    Мои предположения, что kTLS поддерживает HTTP/3 протокол и то, что скорость скачивания будет достаточно высокой, по сравнению с другими протоколами, оказались неверными.

    В тестах, при скачивании по HTTP/3 протоколу, ядро процессора нагружалось всего до ~60%, по сравнение в 100%, при тестировании на остальных протоколах. Предполагаю, что протокол будут дальше отлаживать и оптимизировать.

    При использовании kTLS и sendfile() значительно проседает скорость скачивания по HTTP/2 протоколу. А всё из-за того, что sendfile(), при включенном kTLS, начинает работать плохо для из-за фрейминга, вызывающий большое количество syscall-ов.

    По итогу, для обслуживание больших статических файлов, рекомендуется включить поддержку kTLS и использовать только HTTP/1.1 протокол. Там, где это невозможно сделать, можно отключить HTTP/2 протокол и использовать остальные протоколы - HTTP/1.1 и HTTP/3. Не смотря на то, что HTTP/3 протокол имеет более низкую скорость скачивания, по сравнению с HTTP/1.1, он всё-равно позволяет ускорить работу сайта за счёт использования других преимуществ.

    Благодарю разработчиков web-сервера Nginx за консультацию и советы!

    #linux #nixos #nginx #sendfile #ktls #perfomance

  11. Сделал простой тест на скачивание большого файла и сравнил влияние поддержки шифрования TLS на уровне ядра (kTLS) на производительность web-сервера Nginx. Тестовый файл размером 14.3 Gb разместил на файловой системе tmpfs и скачивал его утилитой curl в /dev/null. Для каждого теста использовал по 100 замеров и вычислил среднее значение.

    В настройках Nginx для поддержки kTLS надо активировать поддержку sendfile().

    Теперь в NixOS модуль ssl автоматически загружает в ядро, если активирован web-сервер Nginx.

    Пример настройки Nginx для активации kTLS в NixOS:
    services.nginx.virtualHosts."example.com" = {
    kTLS = true;
    extraConfig = ''
    sendfile on;
    '';
    };

    Результаты тестирования в MBit/sec с разными комбинациями Sendfile и kTLS:
    1) Sendfile off, kTLS off
    - HTTP/1.1 - 4 274,53
    - HTTP/2 - 4 039,19
    - HTTP/3 - 3 321,10

    2) Sendfile off, kTLS on
    - HTTP/1.1 - 3 893,23
    - HTTP/2 - 3 690,46
    - HTTP/3 - 3 344,11

    3) Sendfile on, kTLS off
    - HTTP/1.1 - 4 385,40
    - HTTP/2 - 4 190,42
    - HTTP/3 - 3 320,28

    4) Sendfile on, kTLS on
    - HTTP/1.1 - 5 558,75
    - HTTP/2 - 2 340,39
    - HTTP/3 - 3 306,99

    Мои предположения, что kTLS поддерживает HTTP/3 протокол и то, что скорость скачивания будет достаточно высокой, по сравнению с другими протоколами, оказались неверными.

    В тестах, при скачивании по HTTP/3 протоколу, ядро процессора нагружалось всего до ~60%, по сравнение в 100%, при тестировании на остальных протоколах. Предполагаю, что протокол будут дальше отлаживать и оптимизировать.

    При использовании kTLS и sendfile() значительно проседает скорость скачивания по HTTP/2 протоколу. А всё из-за того, что sendfile(), при включенном kTLS, начинает работать плохо для из-за фрейминга, вызывающий большое количество syscall-ов.

    По итогу, для обслуживание больших статических файлов, рекомендуется включить поддержку kTLS и использовать только HTTP/1.1 протокол. Там, где это невозможно сделать, можно отключить HTTP/2 протокол и использовать остальные протоколы - HTTP/1.1 и HTTP/3. Не смотря на то, что HTTP/3 протокол имеет более низкую скорость скачивания, по сравнению с HTTP/1.1, он всё-равно позволяет ускорить работу сайта за счёт использования других преимуществ.

    Благодарю разработчиков web-сервера Nginx за консультацию и советы!

    #linux #nixos #nginx #sendfile #ktls #perfomance