我断断续续地花了几天时间试图获得一些关于在 Python 中使用 HTTPServer 和/或 TCPServer 内置库可以获得什么样的性能的硬统计数据。
我想知道是否有人可以给我任何关于如何处理 HTTP 请求的想法,以及他们是否能够在生产环境或高流量的情况下坚持下去,以及是否有人有任何提示或线索可以改进在这些情况下的表现。(假设无法访问 Twisted 等外部库)
谢谢。
我断断续续地花了几天时间试图获得一些关于在 Python 中使用 HTTPServer 和/或 TCPServer 内置库可以获得什么样的性能的硬统计数据。
我想知道是否有人可以给我任何关于如何处理 HTTP 请求的想法,以及他们是否能够在生产环境或高流量的情况下坚持下去,以及是否有人有任何提示或线索可以改进在这些情况下的表现。(假设无法访问 Twisted 等外部库)
谢谢。
这些内置库都不是用于严肃的生产用途。从 Twisted、Tornado、gunicorn 等获得真正的实现,有很多。没有必要坚持使用标准库模块。
内置库的性能以及可能的健壮性很差。
测试它们。开始在 localhost 上提供页面,然后使用 Apache 基准测试工具。
apt-get install apache2-utils
ab -n 10000 -c 100 http://localhost/
这会产生 10000 个请求,最多有 100 个并发请求。
但是,是的。我不会在生产中使用它们。我们通过 uWSGI 为 Python 应用程序提供服务,请求通过 Nginx 代理。它非常灵活且可扩展。内置的 httpserver 甚至可以处理多个请求吗?它可能是单线程的。当你测试它时,你会很快发现。