Java 测试约20k客户端与服务器的连接

Java 测试约20k客户端与服务器的连接,java,windows,memory,nio,ram,Java,Windows,Memory,Nio,Ram,我在JavaNIO包中有一个聊天应用程序。我想测试服务器的容量。我运行我的服务器应用程序,客户端程序正在批处理文件中运行。这样我就可以运行任意数量的客户端。当268客户端应用程序运行时,RAM停止进程。Ram内存不足,无法执行下一个客户端 Ram满时,处理器是否可以使用硬盘内存??不是java堆空间 我正在使用Windows 7 Prof 32位、4 gp ram、i5处理器我最近尝试了一个更简单的实验,使用2000个MySQL线程客户端。 我担心你会撞到很多墙。 首先,您将有一个Java2GB

我在JavaNIO包中有一个聊天应用程序。我想测试服务器的容量。我运行我的服务器应用程序,客户端程序正在批处理文件中运行。这样我就可以运行任意数量的客户端。当268客户端应用程序运行时,RAM停止进程。Ram内存不足,无法执行下一个客户端

Ram满时,处理器是否可以使用硬盘内存??不是java堆空间


我正在使用Windows 7 Prof 32位、4 gp ram、i5处理器

我最近尝试了一个更简单的实验,使用2000个MySQL线程客户端。
我担心你会撞到很多墙。
首先,您将有一个Java2GB堆大小限制。你应该考虑到一个64位的JVM。见
然后,Windows 7 32位不能处理超过3.12GB的RAM。您应该考虑一个64位操作系统BR> 此外,操作系统不允许您首先打开20k插槽。检查注册表中的MaxUserPort。

如果你通过所有这些,也许是时候考虑CPU分配,在2K线程和I5线程下不应该是问题。但我不知道是否有20k…

我最近用2000个MySQL线程客户端做了一个更简单的实验。
我担心你会撞到很多墙。
首先,您将有一个Java2GB堆大小限制。你应该考虑到一个64位的JVM。见
然后,Windows 7 32位不能处理超过3.12GB的RAM。您应该考虑一个64位操作系统BR> 此外,操作系统不允许您首先打开20k插槽。检查注册表中的MaxUserPort。

如果你通过所有这些,也许是时候考虑CPU分配,在2K线程和I5线程下不应该是问题。但是我不知道20k…

对于您的负载测试,您应该将服务器和客户端分开

运行服务器并仅在您的计算机上运行该服务器。使用其他计算机运行客户端

这将避免您遇到此类问题,并且将更加现实。您将永远不会有20k客户端和运行同一台机器的服务器:)

由于您的资源将专用于服务器,因此您还可以在计算机上不受客户端干扰的情况下监视服务器的性能

顺便说一句,在w7中,有一个turboram,允许您插入usb加密狗以扩展计算机的RAM。这可以帮助你


M.

对于负载测试,您应该将服务器和客户端分开

运行服务器并仅在您的计算机上运行该服务器。使用其他计算机运行客户端

这将避免您遇到此类问题,并且将更加现实。您将永远不会有20k客户端和运行同一台机器的服务器:)

由于您的资源将专用于服务器,因此您还可以在计算机上不受客户端干扰的情况下监视服务器的性能

顺便说一句,在w7中,有一个turboram,允许您插入usb加密狗以扩展计算机的RAM。这可以帮助你



M.

为什么需要支持20k连接?@casablanca我想创建一个至少支持20k客户端的服务器。(一次至少有20k客户端可以通信)所以我想测试我的服务器。我的问题是为什么要这样做——为什么所有20k客户端都需要与单个服务器通信?一个服务器集群会更实用。@casablanca可能是,但我想知道这个服务器的容量。我只是想知道一次有多少客户端可以和服务器通信。我需要为该服务器创建集群,我需要知道服务器的容量。@casablanca。现代服务器可以轻松处理这一问题。为什么要使它比需要的更复杂?为什么需要支持20k连接?@casablanca我想创建一个至少支持20k客户端的服务器。(一次至少有20k客户端可以通信)所以我想测试我的服务器。我的问题是为什么要这样做——为什么所有20k客户端都需要与单个服务器通信?一个服务器集群会更实用。@casablanca可能是,但我想知道这个服务器的容量。我只是想知道一次有多少客户端可以和服务器通信。我需要为该服务器创建集群,我需要知道服务器的容量。@casablanca。现代服务器可以轻松处理这一问题。为什么要使它比需要的更复杂呢?我将服务器和客户端分开。服务器在PC 1中运行,客户端在PC 1和PC 2中运行。但这两台客户机都有相同的问题。您是否调整了运行java应用程序时使用的命令行,以便为进程分配更多或更少的RAM?您是在一个java程序中运行268客户端,还是启动268Java进程?268Java进程。我使用Batch file.hum从单个java程序运行这个268 java进程,奇怪的是,只有250个进程就达到了RAM限制。。。您是否更改了java内存配置?(使用-Xmx参数)?然后看看这样的文档:它解释了如何/为什么要优化JVM,增加JVM专用的内存,
-Xmx4096m
参数分配整个内存。。。还有十几个这样的问题。顺便说一句,请注意x86的限制。请参阅@Olivier answeri将服务器和客户端分开。服务器在PC 1中运行,客户端在PC 1和PC 2中运行。但这两台客户机都有相同的问题。您是否调整了运行java应用程序时使用的命令行,以便为进程分配更多或更少的RAM?您是在一个java程序中运行268客户端,还是启动268Java进程?268Java进程。我使用Batch file.hum从单个java程序运行这个268 java进程,奇怪的是,只有250个进程就达到了RAM限制。。。您是否更改了java内存配置?(使用-Xmx参数)?然后看看这样的文档:它解释了如何/为什么要优化JVM,增加JVM专用的内存,
-Xmx4096m
参数分配整个内存。。。有一个