我需要管理TIdHTTPServer
上的高负载。如何调整服务器以处理此问题?
我写了一个简单的测试来了解我的TIdHTTP
的行为。
我每秒从客户端发送一些请求,如下所示:
procedure TTestThread.Execute;
var
i: integer;
c: ISP<TIdHTTP>;
s: string;
begin
{ Place thread code here }
c := TSP<TIdHTTP>.Create();
while not Terminated do
begin
for i := 0 to FCountRequestsPerSecond - 1 do
begin
s := c.Get('http://localhost:7777/Test/DBConnection');
end;
sleep(1000);
end;
end;
在服务器上,我这样做:
var
json: ISuperObject;
begin
DB.Connect();
json := SO;
json.B['connected'] := DB.FDConnection.Connected;
FResponses.OkWithJson(json.AsJSon(false, false));
end;
我看到的是,如果我设置FCountRequestsPerSecond = 500
,效果很好。但是,如果我将其增加到1000,它将变得不稳定,并且某些请求会报告套接字错误。
我的问题是,如何管理TIdHTTPServer
的高负载?在这种情况下可以使用哪些工具?如何测试我的TIdHTTPServer
使其失败?