我有一个tcp服务器设置在AIX 5.3上使用inetd。
问题是来自服务器的响应非常缓慢。但是如果我有一个独立的deamon服务器,它的速度非常快。 但我的要求是,我必须使用inetd。
那么,有没有提高inetd的性能?
谢谢
通过inetd运行时遇到的一个问题是,它会在性能上引入开销。 如果性能是一个问题,那么不要使用inetd并使用独立的守护进程。
提高性能的最好方法是将inetd排除在外。 但是如果你确实需要使用inetd,这里有一些想法:
另一种可能性是您的服务正在处理一个请求或less量的请求,然后closures。 如果是这样的话,那么在负载下inetd会花费很多时间来重新启动你的服务。 所以你想避免这种情况。
最后一种可能性是,你所看到的问题是由于服务器进程没有正确终止而造成的,并且不得不使用内核资源。 在最坏的情况下,他们甚至可能会旋转。 当系统运行缓慢时,使用系统监视工具来查看实际发生的情况是值得的。
你能给我们一些关于“非常非常缓慢”和“非常快”之间区别的想法吗? 这可能是因为inetd正在做每个连接上的IP地址反向查找(我不知道这是猜测),也许你没有设置DNS服务器来回答,每个连接都会有1或2分钟的超时时间。
如果差值是“每秒10次”与“每秒12次”,那么与差异为“需要90秒响应”与“立即响应”相比,您将遇到不同的问题。
这听起来像你的TCP服务正在启动每个请求传入inetd,然后立即closures。
为每个请求分配一个像这样的新进程是非常缓慢的,所以我认为最好的地方是改变你的TCP服务,以保持活动,以在closures之前处理x个请求。