Идея проекта

S3
На сайте с 29.03.2012
Offline
367
#111
timo-71 #:
26 уже приляпял (requrements.txt)

Ну норм, немного на самом деле. Мы на AIOHTTP монстра на Джанге, в котором страница с видео открывалась по 2 минуты. Но там до 15 тыщ юзеров одновременно сидит, смотрят анимешки) По итогу в разы сняли нагрузку и стало все гораздо живее, не сохранил скины из нью релика - кстати очень советую для аналитики.

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

Люди пользуются, нам профит, а тс все сказки рассказывает

Aisamiery
На сайте с 12.04.2015
Offline
319
#112
Sly32 #:
А сейчас пишем микросервисы на амазоновских лямбдах

А почему именно на амазоновских?

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
S3
На сайте с 29.03.2012
Offline
367
#113
Aisamiery #:

А почему именно на амазоновских?

А какие альтернативы? Они счас активно серверлесс продвигают и вполне себе крутая штука

Aisamiery
На сайте с 12.04.2015
Offline
319
#114
Sly32 #:
А какие альтернативы?

Лямда? 

ну как минимум у гугла есть https://cloud.google.com/functions
и майкрософта https://azure.microsoft.com/ru-ru/services/functions/

ну российских я пока не беру в пример, а так список то нормальный у них https://blog.back4app.com/serverless-hosting-providers/ =))

Cloud Functions  |  Google Cloud
Cloud Functions  |  Google Cloud
  • cloud.google.com
Try it for free Simplified developer experience and increased developer velocity Cloud Functions has a simple and intuitive developer experience. Just write your code and let Google Cloud handle the operational infrastructure. Develop faster by writing and running small code snippets that respond to events. Connect to Google Cloud or...
S3
На сайте с 29.03.2012
Offline
367
#115
Aisamiery #:

Лямда? 

ну как минимум у гугла есть https://cloud.google.com/functions
и майкрософта https://azure.microsoft.com/ru-ru/services/functions/

ну российских я пока не беру в пример, а так список то нормальный у них https://blog.back4app.com/serverless-hosting-providers/ =))

Да мне все равно с какими работать, в данном случае - требование кастомера, у них все на Амазоне. да и по ощущениям - у нас 70% проектов хостится в Амазоне, кроме, хотя есть и GCP и AZUR

danforth
На сайте с 18.12.2015
Offline
153
#116
timo-71 #:

А чего там рассказывать? Как сказал бы ТС,  "приляпываю" потихоньку кучу либ🤣

В итоге, имеем.



26 уже приляпял (requrements.txt)

И ещё буду🤓

Правда изучать приходится,  мотор, там,  аио - нудно и скучно. Тестировать, разные варианты смотреть, по нагрузкам, потребляемым ресурсам и т.д. Нудятина типа такого, как чтобы RPS много, а load average и пр. RES  мало. 


backlog=10240


Здорово помогают штучки типа раз, два.( контролируемый способ планирования фоновых задач + beanstalkd) Здорово снижает время генерации документа, за счет того что часть задач может выполняться уже после отрузки документа.

Лог задач beanstalkd заканчивается такой строкой (после ab -n 20000)

Task 20000 (JobId: 77658) done!--2021-02-20 12:51:06.820591~

Которые запускаюся в свою очередь

До внедрения этих штучек, РПС был примерно 400-500, а сейчас 900+ на типичной индекс паги ( для реального юзера чуть меньше, юзер агент апачбенч в списке ботов, ряд операции для ботов не выполняется. Сессия там и т.д. )

А почему зафейленых реквестов так много (4к+)?

Junior Web Developer
T7
На сайте с 19.09.2018
Offline
63
#117
danforth #:
А почему зафейленых реквестов так много (4к+)?

Если это про это,

Failed requests:        4+ на скрине
   (Connect: 0, Receive: 0, Length:

то ответы разной длины. Ну, типа

"gen_time": 6.4334869384765625

а может, 16.345345... или 134.88888...

Ошибки, это когда Non-2xx responses:    Смоделирую.. 

Concurrency Level:      800
Time taken for tests: 3.727 seconds
Complete requests: 10000
Failed requests: 732
(Connect: 0, Receive: 0, Length: 732, Exceptions: 0)
Non-2xx responses: 9268
Total transferred: 194033751 bytes
HTML transferred: 192166843 bytes
Requests per second: 2683.09 [#/sec] (mean)
Time per request: 298.163 [ms] (mean)
Time per request: 0.373 [ms] (mean, across all concurrent requests)
Transfer rate: 50840.90 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 6 3.6 6 19
Processing: 0 231 805.1 7 3581
Waiting: 0 228 802.4 5 3580
Total: 0 237 806.5 13 3594

При

web.run_app(    
        init(),
        path=args.path,
        port=args.port,
        access_log=None,
        print=None,
        backlog=1024
    )

backlog (int) – a number of unaccepted connections that the system will allow before refusing new connections, see socket.listen() for details. 128 by default.



Server Reference — aiohttp 3.7.3 documentation
  • docs.aiohttp.org
The Request object contains all the information about an incoming HTTP request. is used for (which have no applications, routers, signals and middlewares). has an and attributes. class ¶ ¶ HTTP version of request, Read-only property. Returns instance. ¶ HTTP method , read-only property. The value is upper-cased like , , etc. ¶ A instance with...
T7
На сайте с 19.09.2018
Offline
63
#118

danforth , кстати, привет.

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


timo-71 #:
backlog

это один из вариантов. В зависимости от ресурсов.


В предыдущем тесте, 2 последних были закоментированы.


а на предыдущем тесте, было numprocs = 2



Ну вот они, все 4.  В итоге 512 тоже вариант:


И нормально:


Ресурсы

processor       : 7
vendor_id       : GenuineIntel
cpu family      : 6
model           : 165
model name      : Intel(R) Core(TM) i3-10100 CPU @ 3.60GHz
stepping        : 3
microcode       : 0xe0
cpu MHz         : 4118.145
cache size      : 6144 KB

[www@localhost supervisord.d]$ sudo cat /proc/meminfo
MemTotal: 16066212 kB
MemFree: 2226140 kB
MemAvailable: 7608288 kB
Buffers: 5116 kB
Cached: 6130460 kB
SwapCached: 3636 kB


danforth - Профиль вебмастера - Форум об интернет-маркетинге
danforth - Профиль вебмастера - Форум об интернет-маркетинге
  • searchengines.guru
danforth - Профиль вебмастера
S3
На сайте с 29.03.2012
Offline
367
#119
А не пробовал на gunicorn запускать? По всем тестам uwsgi ему проигрывает.
T7
На сайте с 19.09.2018
Offline
63
#120
Sly32 #:
А не пробовал на gunicorn запускать

Нет, у меня Nginx +

upstream dododohttp {
  server unix:/tmp/appd_1.sock fail_timeout=0;
  server unix:/tmp/appd_2.sock fail_timeout=0;
  server unix:/tmp/appd_3.sock fail_timeout=0;
  server unix:/tmp/appd_4.sock fail_timeout=0;
}

...

command=/var/www/aweb/pyenv/bin/python /var/www/aweb/pyenv/pyd/app.py --path=/tmp/appd_%(process_num)s.sock

несколько процессов aiohttp;

В документации прямо сказано, что

В отличие от развертывания с голым Nginx, решению не нужно вручную запускать несколько процессов aiohttp и 
использовать такой инструмент, как supervisord, для его мониторинга.
Но ничего не дается бесплатно: запуск приложения aiohttp под Gunicorn немного медленнее.

А  uwsgi у меня pgadmin

Server Deployment — aiohttp 3.7.3 documentation
  • docs.aiohttp.org
There are several options for aiohttp server deployment: Every method has own benefits and disadvantages. Standalone¶ Just call function passing instance. The method is very simple and could be the best solution in some trivial cases. But it does not utilize all CPU cores. For running multiple aiohttp server instances use reverse proxies...

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий