2

我正在使用 Heroku 来测试它对 Django 应用程序的好处。

我创建了一个包含两个操作的简单项目:

  1. 返回简单的hello world
  2. 生成图像并将其作为响应发送

我曾经siege -c10 -t30s测试过 Django 开发服务器和 gunicorn(都在 Heroku 上运行)。这些是我的结果:

简单的hello world
- django dev

Lifting the server siege...      done.
Transactions:                376 hits
Availability:             100.00 %
Elapsed time:              29.75 secs
Data transferred:           0.00 MB
Response time:              0.29 secs
Transaction rate:          12.64 trans/sec
Throughput:             0.00 MB/sec
Concurrency:                3.65
Successful transactions:         376
Failed transactions:               0
Longest transaction:            0.50
Shortest transaction:           0.26

- 独角兽

Lifting the server siege...      done.
Transactions:                357 hits
Availability:             100.00 %
Elapsed time:              29.27 secs
Data transferred:           0.00 MB
Response time:              0.27 secs
Transaction rate:          12.20 trans/sec
Throughput:             0.00 MB/sec
Concurrency:                3.34
Successful transactions:         357
Failed transactions:               0
Longest transaction:            0.34
Shortest transaction:           0.26

生成图像
- django dev

Lifting the server siege...      done.
Transactions:                144 hits
Availability:             100.00 %
Elapsed time:              29.91 secs
Data transferred:           0.15 MB
Response time:              1.52 secs
Transaction rate:           4.81 trans/sec
Throughput:             0.01 MB/sec
Concurrency:                7.32
Successful transactions:         144
Failed transactions:               0
Longest transaction:            4.14
Shortest transaction:           1.13

- 独角兽

Lifting the server siege...      done.
Transactions:                 31 hits
Availability:             100.00 %
Elapsed time:              29.42 secs
Data transferred:           0.05 MB
Response time:              7.39 secs
Transaction rate:           1.05 trans/sec
Throughput:             0.00 MB/sec
Concurrency:                7.78
Successful transactions:          31
Failed transactions:               0
Longest transaction:            9.13
Shortest transaction:           1.19

我用过
- Django 1.4
- Gunicorn 0.14.6
- venv

为什么gunicorn这么慢?

//更新
这两个测试都在 Heroku 环境开发服务器中运行意味着标准 django 服务器 - 它可以由它运行在这里python manage.py runserver描述。

4

3 回答 3

4

设置是一样的吗?Django 1.4 开发服务器默认是多线程的,gunicorn 默认配置中只有 1 个同步工作者。

于 2012-07-30T11:09:26.877 回答
1

也许您的互联网连接速度是一个瓶颈?从 Heroku 下载数据显然比通过 localhost 移动数据要慢(我假设 django dev 服务器在 localhost 上运行)。这可以解释为什么对于 Heroku 而言,响应较小(hellowords)的基准测试同样快,而响应较大(图像)的基准测试却很慢。

于 2012-07-30T00:56:21.547 回答
1

您将不得不设置应用程序分析以深入了解问题的确切位置。

于 2012-07-30T00:02:44.120 回答