美文网首页Linux Bash
jemalloc何方神圣

jemalloc何方神圣

作者: 迷糊银儿 | 来源:发表于2020-06-13 14:58 被阅读0次

背景
最近有一个压测任务,比较物理机和容器云机器上服务的性能。前提是两台机器的配置CPU、内存都一样,且都是独占机器,但是压测结果大跌眼镜物理机QPS居然连640都扛不住,而容器云机器能扛到2000。理论上来讲物理机性能肯定是比容器云好的,但这究竟是为什么呢?经多方定位发现rd同学在编译代码过程中设置jemalloc参数失败,后重新设置重新压测果然物理机性能优于容器云性能。至于为什么物理机更优秀当然是因为容器云的硬件资源是在软件层模拟出来导致的喽,虚拟机没有硬件实体,而物理机有实体。也就是说,物理机是有实体的硬件系统,比如服务器等,而虚拟机是借助物理机虚拟出虚拟的硬件系统。
jemalloc作用

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

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

jemalloc性能图
jemalloc安装并使用
  1. 下载:https://github.com/jemalloc/jemalloc/releases
  2. 下载包地址:jemalloc-4.2.1
  3. tar -xjvf jemalloc-4.2.1.tar.bz2
    生成的文件列表如下:


    image.png
  4. 在此目录下预编译./configure –prefix=/usr/local/jemalloc
    5.编译: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

运行程序时可能会报找不到库:


image.png

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

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

重新运行即可

相关文章

网友评论

    本文标题:jemalloc何方神圣

    本文链接:https://www.haomeiwen.com/subject/zmnatktx.html