一つ、問題
ではcentOS7
設置環境redis-5.0.4
コンパイルフェーズで発生した致命的なエラー:jemalloc / jemalloc.h:そのようなファイルまたはディレクトリ。
二、原因分析
では、次の通路:Redis
README.md
アロケーター
Redisをビルドするときにデフォルト以外のメモリアロケータを選択するには
、MALLOC
環境変数を設定します。
Linux
システムのデフォルトであるjemallocを除いて、Redisはデフォルトでコンパイルされ、libcmallocに対してリンクされます。jemallocはlibcmalloc
よりも断片化の問題が少ないことが証明されているため、このデフォルトが選択されました。libc mallocに対してコンパイルを強制するには、次を使用します。
%make MALLOC = libc
Mac OS Xシステムでjemallocに対してコンパイルするには、次を使用します。
%make MALLOC = jemalloc
アロケーターallocator
について言えば、MALLOC
この環境変数がある場合は、Redisのビルドに使用されます。また、これはlibc
デフォルトのアロケータではなく、デフォルトはです。これは、存在するよりも少ないjemalloc
ことjemalloc
が証明されているためです。しかし、コースエラーだけがない場合。したがって、そのようなパラメータを追加します。libc
fragmentation problems
jemalloc
libc
make
三、解決策
1.make
指定販売代理店はlibc
make MALLOC=libc
2.jemalloc
ディストリビューターをインストールします
1.インストールjemalloc
wget https://github.com/jemalloc/jemalloc/releases/download/5.0.1/jemalloc-5.0.1.tar.bz2
tar -jxvf jemalloc-5.0.1.tar.bz2
cd jemalloc-5.0.1
yum install autogen autoconf
./autogen.sh
make -j2
make install
ldconfig
cd ../
rm -rf jemalloc-5.0.1 jemalloc-5.0.1.tar.bz2
2.
すでに解凍されているredis
パッケージを最初に削除する前に再コンパイルし、再抽出します。その後、実行しmake
、make install
することができます。