精华内容
下载资源
问答
  • linux安装jemalloc

    千次阅读 2019-02-26 10:50:13
    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 sudo apt-get install autogen autoconf ./autogen.sh make -...
    
    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
    sudo apt-get install autogen autoconf
    
    ./autogen.sh
    make -j2
    sudo make install
    sudo ldconfig
    cd ../
    rm -rf jemalloc-5.0.1 jemalloc-5.0.1.tar.bz2

     

    展开全文
  • jemalloclinux上从安装到使用

    万次阅读 2016-08-15 23:29:36
    首先,jemalloc是干什么的? 我们看看作者自己的介绍: >jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support 意思是说jemalloc干...

    jemalloc在linux上从安装到使用

    上次在引导大家安装redis时提到可能会报错:
    jemlloc库缺失

    发现了redis有用到jemalloc。

    首先,jemalloc是干什么的?
    我们看看作者自己的介绍:

    jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support

    意思是说jemalloc干了malloc干的活,而且干得好一些,主要体现在避免内存碎片与并发扩展上。

    首先,什么是内存碎片?

    假设系统只有一片64字节的内存,分配给4个单元,每个16个字节:
    这里写图片描述
    将这4个单元分配释放再重新分配4个12字节的内存片:
    这里写图片描述
    我们发现多了4*4不连续的内存片,下次我们就不能分配12或者16字节的内存了。
    另外,glibc分配内存一般向4或者8取整,比如我们向申请13字节的内存,实际上得到的内存片会是16字节,多出来的3个字节我们不知道,也就无法使用了。

    内存碎片很可怕吗?
    短时间内不明显,对于线上的服务器比如nginx,运行时间可能经年,每天几亿的请求量,如果每天产生100片 ,一年下来也是3万多片 ,相当恐怖!

    jemalloc可以有效的解决这个问题!
    jemalloc的性能图(上篇已经展示过):
    这里写图片描述

    既然jemalloc这么牛逼,我们就来安装吧!

    先github上下载:
    https://github.com/jemalloc/jemalloc/releases

    下载包地址:
    jemalloc-4.2.1

    下载到linux目录下解压:

    tar -xjvf jemalloc-4.2.1.tar.bz2
    生成的文件列表如下:
    这里写图片描述

    在此目录下预编译

    ./configure –prefix=/usr/local/jemalloc

    完成后再编译:

    make -j8 && make install

    我们到生成目录去看看:

    这里写图片描述

    生成的头文件在include里,库在lib里。

    至此,安装算是完成了。

    下面看看如何使用:
    在编译链接时直接指向jemalloc即可:

    gcc -g -c -o 1.o 1.c
    gcc -g -o 1.out 1.o -L/usr/local/jemalloc/lib -ljemalloc

    运行程序时可能会报找不到库:
    这里写图片描述

    只要将jemalloc的库被系统找到即可:

    echo /usr/local/jemalloc/lib >> /etc/ld.so.conf
    ldconfig

    再次运行即可


    展开全文
  • Linux安装和编译jemalloc的方法

    千次阅读 2018-11-11 02:26:22
    一、安装包下载 1.1从github上下载jemalloc程序,有两种方式,一种是下载gz文件,另...所以使用第一种方法直接下载gz压缩包,建议在linux环境下载。 下载路径如下: https://github.com/jemalloc/jemalloc/relea...

    一、安装包下载

    1.1从github上下载jemalloc程序,有两种方式,一种是下载gz文件,另一种是下载工程或clone工程文件。使用方法二下载或clone时没有configure、make等文件,不知道为什么,没深入研究。所以使用第一种方法直接下载gz压缩包,建议在linux环境下载。

    下载路径如下:

    https://github.com/jemalloc/jemalloc/releases

    1.2 解压到自定义目录

    二、编译调试

    2.1 配置安装根目录,编译工程

    ./configure –prefix=/usr/local/jemalloc

    make

    make install

    2.2 编译好后,在/usr/local/jemalloc会生成bin、libs等文件

    3. 测试环境

    3.1 进入工程环境,创建测试文件夹(neq)和测试文件(app.c)

    #include <stdlib.h>

    #include <jemalloc/jemalloc.h>

    void do_something(size_t i) {

            // Leak some memory.

            malloc(i * 100);

    }

    int main(int argc, char **argv) {

            for (size_t i = 0; i < 1000; i++) {

                    do_something(i);

            }

            // Dump allocator statistics to stderr.

            malloc_stats_print(NULL, NULL, NULL);

            return 0;

    }

     

    3.2 编译app.c文件

    编译时,会出现找不到jmalloc.h头文件错误,使用-I指定h文件目录,使用-L指定库文件目录,使用-l指定库文件名称,具体参数可以看到gcc说明。

    使用如下命令编译:gcc app.c –o app –I’/usr/local/jemalloc/include’ –L’/usr/local/jemalloc/lib’ -ljemalloc

    3.3 由于libjemalloc.so.2没有加入系统,所以在执行时提示libjemalloc.so.2无法打开或找不到错误。

    error while loading shared libraries: libjemalloc.so.2: cannot open shared object file: No such file or directory解决办法是把libjemalloc.so.2加入/etc/ld.so.conf中,操作如下:
    1. # vim /etc/ld.so.conf
    include ld.so.conf.d/*.conf
    1. 看看/etc/ld.so.conf.d目录下的文件:
    # ls /etc/ld.so.conf.d
    kernel-3.10.0-327.4.4.el7.x86_64.conf
    dyninst-x86_64.conf                     
    libiscsi-x86_64.conf
    kernel-3.10.0-229.20.1.el7.x86_64.conf  
    1. 在该目录下创建一个jemalloc.conf文件(文件名任意),内容如下:
    /usr/local/jemalloc/lib/

    保存退出。 
    4) 执行如下命令让文件生效:

    sudo /sbin/ldconfig

    再次启动Terminal。

    4. 运行app程序,显示内存内容,jemalloc测试成功。

    参考文档:

    1. Getting Started

    https://github.com/jemalloc/jemalloc/wiki/Getting-Started

    https://github.com/jemalloc/jemalloc/blob/dev/INSTALL.md

    1. jemalloc在linux上从安装到使用

    https://blog.csdn.net/xiaofei_hah0000/article/details/52214592

    1. jemalloc Linux 安装与使用方法

    https://blog.csdn.net/a193314/article/details/54345799

    1. Linux编译程序时找不到头文件的解决办法

    https://blog.csdn.net/iw1210/article/details/53515259

    1. linux 编译指定库、头文件的路径问题

    https://blog.csdn.net/jiaweizou/article/details/8153897

    1. Linux下找不到so文件的解决办法

    https://blog.csdn.net/rznice/article/details/50857220

    展开全文
  • linux 安装redis时刚开如有可能为报错 没有gcc 这时可以用 yum install gcc 安装好后 make  又报错报错jemalloc/jemalloc.h:没有那个文件或目录 问题 及 解决 Redis 2.8.18 安装报错 error: ...

    linux 安装redis时刚开如有可能为报错 没有gcc

    这时可以用 yum install gcc

    安装好后 make 

    又报错报错jemalloc/jemalloc.h:没有那个文件或目录

    问题 及 解决


    发布于 2014-12-19 11:19:17 | 22336 次阅读 | 评论: 7 | 来源: PHPERZ

    这里有新鲜出炉的Redis 设计与实现(第一版),程序狗速度看过来!

    Redis Key-Value数据库

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。


    本文为大家讲解的是Redis 2.8.18 安装报错 error: jemalloc/jemalloc.h: No such file or directory解决方法,感兴趣的同学参考下。

    错误描述

    安装Redis 2.8.18时报错:

    zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
    zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
    make[1]: *** [adlist.o] Error 1
    make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
    make: *** [all] Error 2

    原因分析

    在README 有这个一段话。

    Allocator  
    ---------  
     
    Selecting a non-default memory allocator when building Redis is done by setting  
    the `MALLOC` environment variable. Redis is compiled and linked against libc  
    malloc by default, with the exception of jemalloc being the default on Linux  
    systems. This default was picked because jemalloc has proven to have fewer  
    fragmentation problems than libc malloc.  
     
    To force compiling against libc malloc, use:  
     
        % make MALLOC=libc  
     
    To compile against jemalloc on Mac OS X systems, use:  
     
        % make MALLOC=jemalloc


    说关于分配器allocator, 如果有MALLOC  这个 环境变量, 会有用这个环境变量的 去建立Redis。

    而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。

    但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数。

    解决办法

    make MALLOC=libc


    展开全文
  • Linuxjemalloc安装与使用

    万次阅读 2019-07-04 20:46:15
    一、安装 下载地址:https://github.com/jemalloc/jemalloc/releases 目前最新版本为jemalloc-5.2.0 下载之后解压文件: 下面正式开始安装~ step 1: ./autogen.sh step 2: make step 3: ...
  • 错误的本质是我们在开始执行make 时遇到了错误(大部分是由于gcc未安装),然后我们安装好了gcc 后,我们再执行make ,这时就出现了jemalloc/jemalloc.h: No such file or directory。这是因为上次的命令编译失败,有...
  • linux安装jemalloc

    千次阅读 2019-06-02 21:55:39
    1.下载解压jemalloc 1.下载地址:https://github.com/jemalloc/jemalloc/releases我选择最新版本5.2.0 2.进入src目录 cd /usr/local/src 执行wget ...
  • 1. 首先从官网下载jemalloc的代码 2. 解压 3. 编译安装 4. 安装完成 二. 安装遇到的问题 一. 安装 1. 首先从官网下载jemalloc的代码 下载链接:https://github.com/jemalloc/jemalloc/archive/5.2.1.tar.gz ...
  • jemalloc Linux 安装与使用方法

    万次阅读 2017-01-11 17:31:25
    jemalloc 在Github上开源了,你可以选择下载release 版本,或者直接clone 源码编译 我选择的是源码编译#clone 项目 git clone ...sudo make install默认安装的路径/usr/bin/install
  • 一、安装 下载地址:https://github.com/jemalloc/jemalloc/releases 目前最新版本为jemalloc-5.2.0 下载之后解压文件: 下面正式开始安装~ step 1: ./autogen.sh step 2: make step 3: ...
  • 安装jemalloc库的心酸过程

    千次阅读 2019-12-16 23:58:49
    背景描述 在学习Redis进行环境搭建的时候(就是安装...于是需要先将jemalloc安装上才能继续安装redis [root@localhost tools]# rpm -ivh redis-3.0.7-4.el6.art.x86_64.rpm warning: redis-3.0.7-4.el6.art.x86_64....
  • 解决方案: 执行命令:make MALLOC=libc
  • 官网下载就差不多了 1663 cd jemalloc-dev/ 1664 ls 1665 code README 1666 ls 1667 ./autogen.sh 1668 make 1669 sudo make install 1672 history
  • jemalloc linux快速上手

    千次阅读 2018-09-15 20:57:13
    jemalloclinux上从安装到使用 redis有用到jemalloc。 首先,jemalloc是干什么的?  我们看看作者自己的介绍: jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation ...
  • 安装 jemalloc for mysql

    2019-05-20 12:36:00
    安装 jemalloc $ git clone https://github.com/jemalloc/jemalloc $ cd jemalloc $./autogen.sh $ ./configure $ make $ make install /usr/bin/install -c -d /usr/local/bin /usr/bin/install -c -m...
  • 在运行make命令后加上MALLOC=libc#make MALLOC=libc 转载于:https://blog.51cto.com/yntmdr/1590757
  • 通过wget方式直接在linux上下载Redis wget http://download.redis.io/releases/redis-2.6.17.tar.gz 解压下载的redis-2.6.17.tar.gz 文件 tar xzf redis-2.6.17.tar.gz 进入解压后的文件夹 cd redis-2.6.17 ...
  • 此问题是在Linux安装Redis出现的问题 安装过程 1. 解压从官网下载的Redis tar zxvf redis-5.0.10.tar.gz 2. 进入redis-5.0.10目录 cd redis-5.0.10 3. 编译redis make 问题1 报错:### 原因 CentOS默认...
  • 今天我们从根本上解决这个问题:安装一个jemalloc,操作命令如下(环境为centOS8) 1. 下载jemalloc(详细访问github): wget ...
  • 输入 make 命令后报错 zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录 解决方案如下: 把命令改成 make MALLOC=libc 完美解决
  • jemalloc

    2015-07-15 14:36:45
    项目的线上服务器,在code中大量使用了std::map...可以尝试使用jemalloc和tcmalloc这些三方的malloc库。在目前我项目中,jemalloc的表现最符合需求。 下载地址:http://pkgs.org/download/libjemalloc.so.1 建议直接
  • GCC安装完成以后,在执行make命令,还可能出现 jemalloc/jemalloc.h:没有那个文件目录的错误 在执行第一次make命令没有成功,第二次在执行make命令往往会出现“jemalloc/jemalloc.h:没有那个文件或目录”错误 ...
  • redis 编译出现 zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录 只需要执行 make MALLOC=libc 命令 编译 接着如果make命令没有问题按照提示执行一下make test命令—该命令会检测你当前安装...
  • Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压   2.进入redis [root@localhost software]# cd redis-5.0.0/ 3.安装:make, (1)若提示:: gcc: Command not found 要安装...
  • 在Redis目录下运行make进行编译,爆出的错误结果如下 解决方式:运行make MALLOC=lib就解决了。
  • 场景: 执行make命令,编译redis安装包时报错 解决方案:不执行make,改为执行make MALLOC=libc 执行后结果如下,则问题解决

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,113
精华内容 2,445
关键字:

linux安装jemalloc

linux 订阅