我在 java nio 包中有一个聊天应用程序。我想测试服务器的容量。我运行服务器应用程序,客户端程序通过批处理文件运行。这样我就可以运行任意数量的客户端。当 268 客户端应用程序运行时,RAM 会停止该进程。 Ram 没有足够的内存来执行下一个客户端。
当 RAM 已满时,处理器有什么方法可以使用硬盘内存吗?不是java堆空间
我使用 Windows 7 Prof 32 位、4 gp 内存、i5 处理器
最佳答案
我最近尝试了一个更简单的实验,使用 2000 个 MySQL 线程客户端。
我担心你会碰壁。
首先,java 堆大小有 2GB 限制。您应该考虑使用 64 位 JVM。请参阅Maximum Java heap size of a 32-bit JVM on a 64-bit OS
然后,Windows 7 32 位无法处理超过 3.12GB 的 RAM。您应该考虑 64 位操作系统
而且,操作系统一开始不会让你打开 20k 套接字。检查注册表中的 MaxUserPort。
如果您完成了所有这些,可能是时候考虑 CPU 分配了,在 2k 线程和 i5 下,这应该不是问题。但我不知道20k...
关于java - 测试大约 20k 客户端与服务器的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11624864/