Maison  >  Questions et réponses  >  le corps du texte

并发 - python的flask框架结合gevent性能反而大幅度下降?

项目使用flask框架,是个较复杂的推荐系统,需要从设定的各类数据源取(有些复杂的排序、过滤)推荐数据,大部分数据存取使用redis,经过常规优化后取数据控制在200ms以内。
为进一步大幅度提升性能采用gevent作为并发框架,但是发现性能反而下降了大概25%,原来一个数据源就30ms,改造后上升到一两百毫秒都有,这是为什么?这种情况大家会怎么进一步调优了。
(使用场景除了比较集中的取数据模块,其他地方还有零星用到gevent)

大家讲道理大家讲道理2714 Il y a quelques jours1043

répondre à tous(1)je répondrai

  • 黄舟

    黄舟2017-04-18 09:36:54

    Cette question est un peu compliquée. Il est recommandé que le sujet présente les paramètres d'environnement et de démarrage, le nombre de processus en cours et comment l'exécuter.

    En l'absence de ces conditions, je voudrais parler de ce problème en fonction de ma propre compréhension. L'intention initiale de cette question est d'utiliser gevent pour améliorer les performances, mais il s'avère que les performances sont réduites, donc à cette fois, il faut examiner où se situe la performance abaissée.

    La norme du questionneur pour mesurer la dégradation des performances est qu'il faut plus de temps pour obtenir des données. Ici, je vais partager mon opinion personnelle. Tout d'abord, le questionneur ne sait pas comment fonctionne gevent. Le rôle de gevent est qu'un thread en exécute plusieurs. Le processus est adapté à plusieurs opérations d'E/S. S'il est mélangé avec un peu plus d'opérations CPU, il sera difficile de comprendre le temps. Par exemple, la question ici nécessite un niveau de dizaines de ms. fonctionne pendant une ou deux cents ms ? Le fonctionnement du processeur, alors quelle que soit la vitesse de votre autre coroutine IO, cela n'aidera pas.

    De plus, il faut souligner que l'introduction de gevent n'accélérera pas l'acquisition des données. Par exemple, c'était à l'origine 30 ms. Après l'introduction, cela ne diminuera pas, mais ne fera que augmenter. avantages de l’introduire ? Il s'avère que vous pouvez recevoir 33 demandes de clients en 1 seconde. Après l'introduction, vous pourrez peut-être recevoir 100/s ou 300/s. C'est l'avantage de gevent.

    Je ne peux faire qu'un nombre limité de suggestions sans comprendre pleinement l'environnement du sujet. Si le sujet ne comprend pas, vous pouvez fournir une analyse plus approfondie des informations précédentes.

    répondre
    0
  • Annulerrépondre