jemalloc在linux上从安装到使用
jemalloc在linux上从安装到使用
上次在引导大家安装Redis时提到可能会报错:
发现了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系统下内存文件夹的管理(linux内存文件夹)
- Linux解压安装:快速步骤指南(linux解压安装)
- Red Hat Linux 安装指南(linux红帽安装)
- 宏基:开启Linux新时代(宏基linux)
- 管理深度探索Linux内核中的权限管理(linux内核权限)
- Linux下一步步安装Git(linuxgit安装)
- Linux复制文件:快捷链接(linux复制链接)
- 使用Vi在Linux系统中保存退出(linux中vi保存退出)
- Linux高效定制安装指南(linux定制安装)
- 深入浅出:嵌入式Linux实训(嵌入式linux实训)
- Linux下使用翻墙代理解封网络限制(linux翻墙代理)
- Linux下捕获真实美味的肉鸡(linux抓肉鸡)
- 安装Linux系统软件安装指南(linux系统的软件)
- 探索Linux之美——Echo指令带你穿越声音世界(linux系统echo)
- Linux系统中查看已安装服务的方法(linux查看安装的服务)
- Linux 开启新分支:引领技术发展之路(linux的分支)
- Linux:读者与写者的挑战(读者写者问题linux)
- Linux下SSH安全扫描(linuxssh扫描)
- Linux车机系统:驱动移动社会的动力(linux车机系统)
- 关闭Linux下防火墙的方法(关闭linux的防火墙)
- 红帽Linux基础:25个实用命令快速上手(红帽linux常用命令)
- 如何使用Linux查看机器型号(linux查看机器型号)
- 简单快速,用U盘安装红旗Linux系统(u盘安装红旗linux)
- Linux:包含Tar安装的快速指南(linux安装命令tar)
- 地址Linux网络安装之设置IP地址(linux网卡ip)
- 使用Linux下C语言进行网络编程技巧(linux下c网络编程)
- 使用Linux轻松挂载NTFS分区:简单实用的教程(linux下挂载ntfs)
- 学习Linux:安装源码包教程(linux安装源码包)
- 使用Linux病毒扫描工具保护您的计算机安全(linux病毒扫描工具)
- Linux下网卡聚合的优势.(linux 网卡聚合)