我有一台运行 Windows 2012 R2 的 VPS 服务器,该服务器与一款软件配合使用,该软件每分钟可建立大约 15,000 个连接。我注意到 VPS 存在一些延迟和其他问题,因此决定升级到专用服务器。
VPS 规格:“4 vCores 3.1 GHz、8GB Ram、SSD、100mbit 连接” 专用规格:“Xeon E5-1620 v2 3.7GHz、64GB RAM、1gbit 连接”
我在上面安装了 Windows 2012 R2,发现软件速度急剧下降。它每分钟只能达到约 5,000 个连接。我想这可能是因为它在 HDD 上而不是 SSD 上,所以我设置了一个 RAMDisk。性能没有任何改善。我开始研究 TCP 限制,认为自动为我设置的 VPS 容器可能与我的设置不同。我找不到太多。我在注册表中的 TCP 参数中添加了大量选项,但仍然没有看到任何区别。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "TcpTimedWaitDelay"=dword:0000001e "MaxUserPort"=dword:0000fffe "TcpNumConnections"=dword:00fffffe "TcpMaxDataRetransmissions"=dword:00000005
该软件通过多个端口(约 100 个端口)连接到单个 IP 地址。
我现在不知道该去哪里找。所有速度测试都表明专用服务器的速度明显快于 VPS,但 VPS 的连接速度较慢且硬件功能较弱,但每分钟的连接速度却更快。
如果我能进一步了解任何信息,我将不胜感激。
答案1
尝试接下来的更改(更多细节)。
- 在 %windir%\System32\inetsrv\ 打开管理员命令提示符
- 运行以下命令将 appConcurrentRequestLimit 属性更新为合适的数字(IIS7+ 中的默认值为 5000)
appcmd.exe 设置配置/section:system.webserver/serverRuntime /appConcurrentRequestLimit:100000
- 打开 %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet.config(Framework64 适用于 64 位进程)
配置它 例子
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <runtime> <legacyUnhandledExceptionPolicy enabled="false" /> <legacyImpersonationPolicy enabled="true"/> <alwaysFlowImpersonationPolicy enabled="false"/> <SymbolReadingPolicy enabled="1" /> <shadowCopyVerifyByTimestamp enabled="true"/> </runtime> <startup useLegacyV2RuntimeActivationPolicy="true" /> <system.web> <applicationPool maxConcurrentRequestsPerCPU="20000" /> </system.web> </configuration>