小编Her*_*ssi的帖子

Nginx + Gunicorn + Django 高延迟

我正在尝试调整我的 WS 以支持 ~ 20k 并发用户。

无论我更改什么配置,当我的测试遇到 2(2)k 个用户和各种 502 / 504 错误时,我仍然获得相同的 6 秒平均响应时间/每个端点。

网络服务:

CloudFlare <--> Nginx <--> Gunicorn <--> Django/DRF <--> Memcache <---> Postgres

这是我尝试过的:

  • 将枪械工人从 4 人增加到 10 人
  • 将服务(pod)实例从 3 个增加到 10 个
  • 将 gunicorn 工人超时增加到 120
  • 将 Nginx proxy_pass 超时增加到 120

大多数端点每 100 秒访问一次数据库,其他请求从内存缓存中获取数据。

任何人都可以通过指出我应该更改哪种配置来提供帮助吗?

我应该在哪里寻找延迟/瓶颈?

Gunicorn 工人显然正在超时,我不理解这一点,因为 WS 视图中没有逻辑。它应该只从 memcache 获取查询并返回它。

Nginx 日志:

latforms/android HTTP/1.1", upstream: "http://10.0.1.17:9090/endpoints/platforms/android", host: "myhost.co"
2018/08/13 23:43:25 [error] 8893#8893: *2809163 upstream timed out (110: Connection timed out) while connecting …
Run Code Online (Sandbox Code Playgroud)

django nginx gunicorn

5
推荐指数
1
解决办法
889
查看次数

Elixir-基于动态变量创建结构

是否可以基于动态传递的变量创建结构?

像这样:

  def create_map_list(list, atom, struct) do
    Enum.filter(list, &Map.has_key?(&1, atom))
    |> Enum.map(
      &%struct{
        id: &1.new_agent.id,
        name: &1.new_agent.name,
        primary_skillset: &1.new_agent.primary_skillset,
        secondary_skillset: &1.new_agent.secondary_skillset
      }
    )
Run Code Online (Sandbox Code Playgroud)

结束

struct elixir

3
推荐指数
1
解决办法
633
查看次数

标签 统计

django ×1

elixir ×1

gunicorn ×1

nginx ×1

struct ×1