当前位置: 首页 > 知识库问答 >
问题:

AIX中的Java头数限制?

须衡虑
2023-03-14

通过执行一个简单的循环创建线程java程序,当我使用-Xmx2048M时,AIX的线程数限制在900左右,当我将该参数降低到-Xmx1024M时,线程数限制增加到2000左右。我的ulimited属性都是无限的:ulimited-a时间(秒)无限文件(块)无限数据(kbytes)无限堆栈(kbytes)无限内存(kbytes)无限核心转储(块)无限nofile(描述符)无限线程(每个进程)无限进程(每个用户)无限

有人能帮我吗?谢谢

共有1个答案

鲁滨海
2023-03-14

我的猜测是,您有一个32位JVM,它的虚拟内存限制约为2.8 GB(在保留操作系统和JVM库之后)。如果每个线程使用大约900 KB,那么使用2 GB堆会为大约900个线程留下虚拟内存。如果将堆大小减少到1 GB,这将为大约2000个线程留下足够的虚拟内存。

尝试使用64位JVM,因为我也猜您有一个64位操作系统(32位操作系统往往有一个下限),或者减少最大堆栈大小。

在大多数操作系统上,64位JVM的容量限制在1 TB左右,我发现您可以在遇到一些限制之前创建大约32K个线程(我还不知道是什么)

这是我为Linux写的一篇关于这个主题的文章http://vanillajava.blogspot.co.uk/2011/07/java-what-is-limit-to-number-of-threads.html

 类似资料:
  • 问题内容: 顾名思义,数据输出流方法writeByte(int)在流上写入一个1字节int。 这有什么限制?是256还是带符号的-128到127? 问题答案: 调用。的文档说: 将指定的字节(参数b的低8位)写入基础输出流。 因此,参数所位于的整数范围无关紧要。两个相差倍数的参数将导致写入相同的字节。 一种简单的测试方法是使用。试试这个程序: 输出是因为相同的内容已被写入两次。

  • 问题内容: 我想设置一个最大长度,以使你输入的字符不能超过限制。这是我到目前为止的代码… 有什么简单的方法可以限制字符数? 问题答案: 你可以执行以下操作(从此处获取): 编辑:看看这个以前的SO职位。你可以拦截按键事件,并根据文本字段中的当前字符数添加/忽略它们。

  • 本节作者:鹏程 在AIX环境下(IBM Power小型机的一种操作系统),你无法使用logstash(因为IBM JDK没有实现相关方法),也无法使用logstash-forwarder,github上有个Logstash-forwarder再实现的项目就是解决这个问题的:https://github.com/didfet/logstash-forwarder-java 配置和Logstash-f

  • 我正在开发AIX 7。我想更详细地了解以下错误场景 无法执行二进制文件 0403-006 执行权限被拒绝 对于第一个案件,在搜查时,很可能, 当您尝试在32位操作系统上运行64位软件时,可能会出现该错误。AIX是64位的,我一直试图通过安装XAMPP来使用mysql,在那里我得到了上面的错误。我认为32/64位软件可以支持64位操作系统。 对于第二种情况, 虽然我以root身份登录,文件权限为75

  • 与其他Unix一样,AIX只存储用户密码的附加哈希。在过去,它使用DES-crypt,然后使用MD5-crypt(略有不同的版本),这与您在Linux上看到的相同。 通过使用更新版本的AIX和/etc/security/passwd,您可以使用新的SHA1/SHA256/SHA512哈希。它们如下所示(密码“secret”的哈希字符串结果示例): 配置文件 /etc/security/pwdalg

  • 我已创建WebView活动并正在加载https://web.doar.zone/c冠状病毒 这个URL需要相机权限,这是我在Android中获得的运行时权限。 下面是mainactivity.java的完整代码: