HP-UX上64位程序使用到4G内存就溢出了?

发布于 2022-09-05 02:57:36 字数 3117 浏览 25 评论 3

本帖最后由 tristan0720 于 2010-10-24 14:52 编辑

IA64机器、HP-UX 11.31、机器内存56G还有很多空闲

跑一perl脚本,因为使用了大量hash,所以相当耗内存,perl是使用64位的/opt/perl_64/bin/perl
现在用top看到程序使用内存一到4G就out of memory了

64位进程现在设置的是最多使用8G数据段,参数如下:
$ ulimit -a
core file size          (blocks, -c) 2097151
data seg size           (kbytes, -d) 4194300
file size               (blocks, -f) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 2048
pipe size            (512 bytes, -p) 16
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 257
virtual memory          (kbytes, -v) unlimited

$ kctune -v maxdsiz
Tunable             maxdsiz
Description         Maximum size of the data segment of a 32-bit process (bytes)
Module              vm
Current Value       4294963200
Value at Next Boot  4294963200
Value at Last Boot  1073741824
Default Value       1073741824
Constraints         maxdsiz >= 262144
                    maxdsiz <= 4294963200
Can Change          Immediately or at Next Boot

$ kctune -v maxdsiz_64bit
Tunable             maxdsiz_64bit
Description         Maximum size of the data segment of a 64-bit process (bytes)
Module              vm
Current Value       8589934592
Value at Next Boot  8589934592
Value at Last Boot  8589934592
Default Value       4294967296
Constraints         maxdsiz_64bit >= 262144
                    maxdsiz_64bit <= 4396972765184
Can Change          Immediately or at Next Boot

不明白为什么64位程序似乎是受到maxdsiz限制而不是maxdsiz_64bit限制

请问如何调整我的脚本使用到的内存?
还是64位perl编译有问题,根本就是32位,如何确定?

==============================================
问题已经解决,其实只要设置maxdsiz_64bit,使用64位perl就行了,之前就是这样设的,出问题的原因是系统的swap空间不足了,导致看上去有很多内存,但实际上用不了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

故人如初 2022-09-10 23:28:46

data seg size 受到maxdsiz限制没法再调了啊
但在root下我可以把data seg size设置为unlimited,然后再跑程序可以超过4G

随心而道 2022-09-10 13:28:46

data seg size           (kbytes, -d) 4194300
这个设置改大一点啊

醉酒的小男人 2022-09-05 04:13:53

shmmax设置为多少呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文