gpt4 book ai didi

c - Redis在AIX上的内存分配

转载 作者:IT王子 更新时间:2023-10-29 06:03:55 34 4
gpt4 key购买 nike

我已经使用 gcc 将 Redis 3.0.6 编译到 AIX 6.1 ppc 系统中,但是当数据库试图超过 2GB RAM 时它崩溃了。

编译器标志和环境变量是:

alias make="gmake"

export CC=gcc
export CFLAGS="-DAIX64 -DBIT64 -maix64 -D_AIX -D_AIX53 -D_AIX61 -I/opt/freeware/include -I/usr/include${CFLAGS_XTRA}"
export CXX=g++
export CXXFLAGS=$CFLAGS
export LDFLAGS="-DAIX64 -DBIT64 -maix64 -L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib/pthread/ppc64:/opt/freeware/lib:/usr/lib:/lib,-bmaxdata:0x80000000"

export AR="ar -X64"
export LIBPATH=.:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib
export OBJECT_MODE=64
echo Gcc environment variables \(CC,CFLAGS,LDFLAGS,LIBPATH,etc\) are set.

但是当它达到 2GB RAM 时它会崩溃并显示以下日志:

41680910:M 12 Jan 12:46:13.056 # Out Of Memory allocating 102709 bytes! 
41680910:M 12 Jan 12:46:13.056 # === REDIS BUG REPORT START: Cut & paste starting from here ===
41680910:M 12 Jan 12:46:13.056 # ------------------------------------------------
41680910:M 12 Jan 12:46:13.056 # !!! Software Failure. Press left mouse button to continue
41680910:M 12 Jan 12:46:13.057 # Guru Meditation: "Redis aborting for OUT OF MEMORY" #redis.c:3572
41680910:M 12 Jan 12:46:13.057 # ------------------------------------------------

它也在我尝试执行时崩溃

redis-server --test-memory 2048

但如果我执行则不会

redis-server --test-memory 2047

很明显它必须有 2GB 的限制,但我找不到。

需要任何想法或进一步的信息吗?

最佳答案

尝试省略 -bmaxdata:0x80000000。在 64 位构建中,此参数将堆大小限制为 2GB。在 32 位构建中,它会将低默认值增加到 2GB。

关于c - Redis在AIX上的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34748787/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com