当我将数据从c#应用程序(Windows服务器)发布到使用POST方法在另一台服务器(Ubuntu)上运行的PHP页面时,
我每秒向PHP页面发送最低1000个请求,
c#application是一个多线程应用程序,一旦收到数据就会将数据发布到php页面
当我不断发布数据时,我在c#应用程序上获得发布超时错误,一旦我重新启动应用程序,它就可以运行几个小时。 [注意:由于php需要时间来完成任务所以新请求正在等待,它会创建队列并且其等待时间超过2分钟并且我得到超时错误]。
我们的服务器都使用最多50%的CPU和RAM使用
我检查c#代码和PHP代码都正常工作没有问题或错误
我检查mysql配置也很好,但我不知道apache配置。
Apache配置设置为默认值
我认为可能是我应该配置apache或php来处理每秒1000个请求,我完全不知道,因为相同的代码工作正常,直到客户请求 增加。
提前感谢好友:)
答案 0 :(得分:0)
我认为您可能会遇到TCP端口耗尽问题。如果您正在对另一台服务器进行许多顺序调用,并且没有正确管理TCP连接,则操作系统将不会立即释放它为传出呼叫创建的TCP端口连接,并将为下一次调用分配更多OS资源。我认为默认的TCP端口发布时间可能高达2分钟。
有关详细信息,请参阅How do I prevent Socket/Port Exhaustion?。确保我们需要查看您的C#代码,以了解您在创建WebClient调用时如何释放您使用的资源。
如果是端口耗尽问题,那么您将不得不使用手动创建的WebClient实例池来管理对PHP服务器的传出调用 - 即使释放WebClient也可能无法立即释放WebClient创建的操作系统资源使用。
答案 1 :(得分:0)