The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

В рамках проекта Lwan развивается новый высокопроизводительн..., opennews (??), 24-Апр-16, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


39. "В рамках проекта Lwan развивается новый высокопроизводительн..."  –1 +/
Сообщение от lv7eemail (?), 24-Апр-16, 16:06 
Думаю, имеется в виду применение векторных инструкций процессора. В теории это может в десятки раз ускорить обработку.
Ответить | Правка | Наверх | Cообщить модератору

50. "В рамках проекта Lwan развивается новый высокопроизводительн..."  +5 +/
Сообщение от Аноним (-), 24-Апр-16, 17:10 
Векторизированный ввод-вывод - это io, использующее readv/writev функции, которые работают с векторами (читай массивами) указателей на участки памяти, откуда/куда надо прочитать/записать данные. Это позволяет за один системный вызов совершить сразу несколько операций ввод-вывод, сэкономив на переключениях контекста.
Ответить | Правка | Наверх | Cообщить модератору

52. "В рамках проекта Lwan развивается новый высокопроизводительн..."  +/
Сообщение от Аноним (-), 24-Апр-16, 17:20 
src/os/unix/ngx_readv_chain.c
src/os/unix/ngx_writev_chain.c
Ответить | Правка | Наверх | Cообщить модератору

62. "В рамках проекта Lwan развивается новый высокопроизводительн..."  –1 +/
Сообщение от Аноним (-), 24-Апр-16, 17:48 
> src/os/unix/ngx_readv_chain.c
> src/os/unix/ngx_writev_chain.c

У нжинкса все сильно хуже c качеством кода при огромном размере, у них вообще не замечено fuzzing, использования asan/ubsan, а если их и проверял когда-то coverity то это было давно и неправда. И вместо coverity score = 0.0 они получают сразу CVE. Более того, код nging полон архаизмов и костылей. А написать модуль - можно, но - неоправданно сложно и криво.

Ответить | Правка | Наверх | Cообщить модератору

75. "В рамках проекта Lwan развивается новый высокопроизводительн..."  +/
Сообщение от Аноним (-), 24-Апр-16, 18:42 
Недавно их проверяли парни из google/cloudflare так что вы обманываете.
Ответить | Правка | Наверх | Cообщить модератору

93. "В рамках проекта Lwan развивается новый высокопроизводительн..."  +/
Сообщение от Аноним (-), 24-Апр-16, 23:53 
> Недавно их проверяли парни из google/cloudflare так что вы обманываете.

Надавно у них пачка CVE была. Вплоть до remode code execution. А еще кодовая база накопила хаков и костылей на все случаи жизни. И все бы ничего, но например свой модуль написать - очень геморно. JS в конфиге? Спасибо. Но написать "обработчик" сабжу будет куда быстрее и проще.

Ответить | Правка | Наверх | Cообщить модератору

126. "В рамках проекта Lwan развивается новый высокопроизводительн..."  +/
Сообщение от Valentin V. Bartenev (?), 25-Апр-16, 22:43 
Привет эксперту по качеству кода от разработчика nginx.

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

Помимо предварительного тестирования, по каждому коммиту запускается автоматическая сборка и тестирование на десятках виртуальных машин с различными операционными системами, архитектурами, компиляторами и параметрами сборки.

Мы активно разрабатываем и поддерживаем набор функциональных тестов. Счет тестам идет на тысячи. Можете свободно пользоваться и принять участие в разработке: http://hg.nginx.org/nginx-tests/  Покрытие кода тестами мониторится с помощью специального анализатора.

На регулярной основе и в автоматическом режиме код проверяется всевозможными статическими анализаторами, в том числе упомянутым вами Coverity еженедельно. Обнаруженные проблемы тут же рассматриваются и устраняются.

Для проверки соответствия формата типу переменных в функциях логгирования был написан и используется специальны плагин к clang.

24x7 трудится несколько машин с фаззингом и ASan-ом. О том, что несколько проблем было найдено таким способом можно узнать из коммит логов и на сайте afl-fuzz.

Периодически нас пытаются проверять ребята из PVS-Studio, о чем даже писали статью:
http://www.viva64.com/ru/b/0246/

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

Жду также советов по улучшению качества кода и совершенствованию методов тестирования.

Спасибо.

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

141. "В рамках проекта Lwan развивается новый высокопроизводительн..."  +1 +/
Сообщение от Аноним (-), 27-Апр-16, 04:25 
> Привет эксперту по качеству кода от разработчика nginx.

Привет, эксперты по проприетари и секретам.

> Смею заверить, что качество кода является одним из первостепенных критериев,

В сабже это как-то сильно заметнее. Идем на https://github.com/lpereira/lwan (большая кнопка на их сайте на главной страничке). Там висит 4 билдстатуса. Статусы апдейтятся ботами, близко к реалтайму. Там и сканы coverity и прогон юнит-тестов. А на сайте расскажут про afl и asan/ubsan. Там сразу понятно что люди этим занимаются, а кто не знал - получит отсыл к паре хороших инструментов.

> опция -Werror используется по умолчанию.

Как остальные должны догадываться о том что у вас разработчики делают? Не говоря о том что у nginx самопальная система сборки и чтобы найти где это - надо отдельно повозиться.

> сборка и тестирование на десятках виртуальных машин

Где все это видно? Как это заявление проверить?

> Мы активно разрабатываем и поддерживаем набор функциональных тестов. Счет тестам идет на тысячи.

Но об этом только вы и знаете. Остальные об этом в лучшем случае могут догадываться.

> Можете свободно пользоваться и принять участие в разработке: http://hg.nginx.org/nginx-tests/

У меня на прицеле под пушистым кроликом и asan'ом уже есть парочка интересных мне проектов. Без коммерческих версий, зато с git'ом. Мне так больше нравится.

>  Покрытие кода тестами мониторится с помощью специального анализатора.

Где это видно окружающим?

> анализаторами, в том числе упомянутым вами Coverity еженедельно. Обнаруженные проблемы
> тут же рассматриваются и устраняются.

Бэджик coverity в вебе который апдейтится околореалтаймно, как у сабжа - сильно убедительнее.

> Для проверки соответствия формата типу переменных в функциях логгирования был написан и
> используется специальны плагин к clang.

Вообще, на удивление неплохо. Признаю: я недооценил используемые в nginx методы разработки. Потому что вы это как-то очень хорошо запрятали. А я не имею ресурсов производить археологические раскопки.

> 24x7 трудится несколько машин с фаззингом и ASan-ом. О том, что несколько
> проблем было найдено таким способом можно узнать из коммит логов и на сайте afl-fuzz.

Для меня hg означает "пусть логи коммитов почитает кто-нибудь другой". Хотя у вас вроде и зеркало в гите есть. Но, как обычно, об этом никто не узнает.

> Периодически нас пытаются проверять ребята из PVS-Studio, о чем даже писали статью:
> http://www.viva64.com/ru/b/0246/

...
> которые по его мнению мешают nginx быть надежным, безопасным, производительным и
> функциональным веб-сервером.

Ок! Если все перечисленное правда - я пожалуй был неправ в моей оценке. Однако я нахожу такую конспирацию странной. Вроде все нормально делаете. А почему стесняетесь об этом рассказать?

> Жду также советов по улучшению качества кода и совершенствованию методов тестирования.

Из того что под руку попалось, разное:
1) Дайте задание вашим тестировщикам попробовать найти зеркало в git, зайдя на nginx.org и послушайте что они скажут. Опенсорс начинается с кода, так? Желательно в нормальной VCS. Но это - не про nginx, найти его исходник целый отдельный гемор. Для сравения, на https://lwan.ws кнопка с исходниками в нормальной vcs светится на самом видном месте.

2) Кстати, на https://nginx.org/ у вас вообще кто-нибудь пробовал заходить? Или вы своими сайтами не пользуетесь? Почему я спрашиваю? Спросите ваших QA. Они у вас есть? Их ничего не смущает? А у той командочки из полутора человек с этим все оки. Парадокс качества. Хоть и не кода.

3) Скажите, разработчикам nginx лениво набрать несколько букв? Или у них редактор автодополнение не умеет? Кто такие u, c, b, s и что там еще? Если это следует какому-то сильно местному convention - может хотя-бы это документировать на видном месте? А лучше бы называть переменные так чтобы было понятно что это. Ну то-есть если это вопрос жизни и смерти - в этом конечно можно разобраться, но...

4) Ну вот допустим нужно мне кастомно обработать запрос и что-то дернуть в системе, etc. Это немного специфичное желание, но бывает что "глупого" сервера чуть-чуть не хватило, сервер приложений - перебор, а у сабжа код который делает именно так, на сях, занимает половинку экрана, просто эпично. В гите есть более крутой пример, с sql и json, странички полторы. Nginx'у бы не помешал пример какого-нибудь максимально тривиального модуля в том же духе на видном месте.

5) Может быть я глупый, но все-таки. Nginx использует каую-то самобытную систему сборки. И я бы не сказал что мне очевидно как в нее добавить сборку какого-нибудь своего довеска.

6) Я не знаю как ваша политика партии относится к такому, но CI'ные статусы на публику вывесить и опубликовать как вы тестируетесь по моему было бы хорошей идеей.

А из-за 4) и 5) nginx вроде как бы и позволяет модули писать, но порог вхождения в десятки раз выше сабжа. Где пример не страшно выложить прямо на главной.

> Спасибо.

Ответить | Правка | Наверх | Cообщить модератору

146. "В рамках проекта Lwan развивается новый высокопроизводительн..."  –2 +/
Сообщение от Аноним (-), 27-Апр-16, 17:26 
Я никак не связан с нгинкс, но с некоторыми из ваших претензий не согласен (хотя глубоко в исходники nginx не лазал, а только несколько раз собирал из исходников со сторонними модулями типа http_nginx_push_stream_module).

> Дайте задание вашим тестировщикам попробовать найти зеркало в git

Mercurial-версия есть на странице download (ссылка с главной). У вас проблемы с mercurial и вы хотите именно git? Горжусь вами, но у вашего wlan.ws та же проблема - я не вижу там ссылок на bazaar и svn.

Кстати, на сайте нгинкс есть ссылки на скачивание релиза в архиве, позволяющего собрать nginx без установки dev tools. На wlan.ws я такого не нашёл. Я правильно понимаю, что это сервер исключительно для разработчиков, а никак не пользователей?

> Или у них редактор автодополнение не умеет?

Если для вас это настолько важно, попробуйте tomcat вместо nginx. Там хорошие идентификаторы, и тамошняя среда разработки умеет автодополнение. Как раз как вам нравится. Только не надо испражняться в nginx вашими AbstractVirtualDatabaseEntityProtocolInterfaceManager. А те, кто активно используют автодополнения, сначала используют memcpy вместо memmove, потому что им редактор так предложил, а потом обижаются, что в glibc отказываются принимать патчи, исправляюющие их криворукость.

И что именно вам не понятно? b вместо buffer (притом, что пятью строками выше делается b = c->buffer и если читать код целиком, а не построчно, то всё будет ясно), или ctx вместо context?

Ответить | Правка | Наверх | Cообщить модератору

148. "В рамках проекта Lwan развивается новый высокопроизводительн..."  +/
Сообщение от Аноним (-), 27-Апр-16, 23:38 
> не согласен (хотя глубоко в исходники nginx не лазал,

Иногда возникнет желание прикрутить немного логики, желательно с нативной производительностью и без уймы зависимостей. Сабж в этом явно дружественнее нжинкса.

> Mercurial-версия есть на странице download (ссылка с главной).

Download подразумевает скачку. Смотрение коммитов - не скачка. Еще более странно отсутствие ссылок на гит-зеркало, при том что оно есть.

> wlan.ws та же проблема - я не вижу там ссылок на bazaar и svn.

А еще он недоступен по протоколу gopher'а. Но это фигня, потому что у nginx сайт оказался недоступен по протоколу https.

> Кстати, на сайте нгинкс есть ссылки на скачивание релиза в архиве,

Если разработчик ссылается на логи коммитов - архивы не помогут.

> позволяющего собрать nginx без установки dev tools.

На гитхабе скачка того что видишь как архив тоже есть.

> На wlan.ws я такого не нашёл. Я правильно понимаю, что это сервер исключительно
> для разработчиков, а никак не пользователей?

Меня он чем-то таким и заинтересовал. Судя по 3000+ звезд на GH (раза в 2 больше чем у того секретного зеркала nginx, btw) - эта штука уже много кого интересует, а я - слоупок!

> Если для вас это настолько важно,

Возможность въехать в код, если его пытаешься менять - имхо важна.

> попробуйте tomcat вместо nginx.

Ява? Это не ко мне.

> AbstractVirtualDatabaseEntityProtocolInterfaceManager.

Крайности плохи. Что Abstract..., что неинформативные имена.

> glibc отказываются принимать патчи, исправляюющие их криворукость.

Не очень понятно при чем тут я. Или нжинкс. Или сабж.

> строками выше делается b = c->buffer и если читать код целиком,
> а не построчно, то всё будет ясно), или ctx вместо context?

Ctx - популярный convention для контекста. А вот к-е им пе то-т ч на г д-ие ctx.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру