2011-12-28 74 views
0

让我先描述一下我的工作环境。我是一名大学生。我的实验室有四台机器,A,B,C和D通过1Gb/s以太网连接。我有一个使用B和C作为计算从机的集群系统。这个集群计算系统有一台在机器A上运行的Python HTTP服务器。我想将这个Python HTTP服务器公开给校园外的其他人。好的是我的实验室已经在机器D上建立了一个Jetty服务器。这个码头服务器可以在校园外面找到。所以我在机器A上建立了一个HTTP代理servlet。我使用这个从http://www.servletsuite.com/servlets/httpproxy.htm下载的。任何请求转到这个servlet将被定向到我的Python服务。HTTP代理servlet太慢了

现在,问题是我发现代理servlet很慢。通常机器B(集群计算)上的实际处理时间仅为0.5秒,但结果需要5秒才能在我的浏览器上进行响应和显示。

这是为什么?有没有人面对过慢的HTTP代理情况?

回答

0

这似乎很慢,我的第一个想法是,这个servlet在做什么?你有源吗?

接下来想到的是,Jetty显然提供了自己的ProxyServlet。也许他们做得更好。也许你应该尝试一下。

0

你说机器A有一个“Python HTTP服务器”。它是基于BaseHTTPServer的处理程序吗?它一次只能处理一个请求:所以排除任何等待问题

我想你正在使用同一台服务器来接受来自外部的作业,并将它们委托给B和C over HTTP协议。


要诊断的路径

  1. 外转d
  2. d至A-代理d转发到
  3. A到B-A代表工作到B

同步外部计算机,A和D 完美(与NTP)并注意这些时间:

  1. 打印之前和d的码头访问日志请求d
  2. 后外侧计算机上的时间,只要一瓶坯注意您的要求
  3. 打印在时间的时间do_get()
  4. 打印A接收从乙

结果后不要从#1后的延迟A上的时间,#2-#3和#3-#4更好地诊断其中延迟发生。