linux离线安装jemalloc,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这么牛逼,我们就来安装吧!
下载到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,jemalloc在linux上从安装到使用相关推荐
- oracle golden gate安装,Oracle GoldenGate在RAC上部署安装
很多用户都采用了OGG作为生产环境的灾备复制软件,生产端通常是双节点的RAC,灾备端可能是同样环境也可能是单实例环境.生产端在安装OGG时会从存储上划分一个独立的共享磁盘,将其做成文件系统,然后将OG ...
- mysql如何安装 centos7_如何解决centos7上mysql安装及问题
本文主要向大家介绍了如何解决centos7上mysql安装及问题,通过具体的步骤向大家展现,希望对大家学习mysql有所帮助. 1 卸载centos7自带mariadb数据库 (1)列出所有被安装的r ...
- python windows 安装scrapy_Python Scrapy在windows上的安装方法
如果想要学习爬虫,肯定会了解Scrapy,但安装Scrapy的方法相对于安装其他第三方库麻烦一点. 下面总结一下在我的电脑上安装Scrapy的方法,我的电脑是Windows10,32位操作系统.有如下 ...
- html5 判断是否安装app,js判断手机上是否安装app
通过js进行判断,判断手机上是否安装某一app,因为js并不能操作手机原生的API,所以它判断的方法只是通过动态生成iframe,用它打开app,看能不能打开,通过这个时间进行判断,下面有两段代码: ...
- 计算机itunes无法安装,Win7 iTunes安装出错怎么办?电脑上无法安装iTunes怎么解决?...
Win7 iTunes安装出错怎么办?这个问题很多用户都遭遇过,不过不幸的是,将近一半的用户使用的并非同样的32位(64位)程序包,当然这个很容易解决,难的是哪些下正确了却无法安装程序的用户.具体解决 ...
- 【踩坑日记 · 嵌入式 Linux】在香橙派 Zero 2 上编译安装 CH340 驱动(OrangePi Zero 2)
前言 最近想尝试在 Linux 下编写和烧录 51 单片机程序,需要用到 CH340 模块,但是香橙派 Zero 2 没有预装它的驱动,所以需要下载 CH340 驱动的源码手动编译安装.在这里记录一下 ...
- linux ubuntu18.1安装教程,Ubuntu 18.04上Qmmp安装教程
导读 Qmmp是Ubuntu或其他操作系统的Winamp替代品.它像Winamp一样具有最小的界面.Qmmp是一个开源的.免费的基于qm的多媒体播放器,它不仅适用于Ubuntu,还可以安装在ALT L ...
- linux 向日葵 使用方法,远程控制工具——Centos7上向日葵安装使用
最近发现国产软件向日葵远控确实很好用windows linux mac androdid ios 全平台支持确实很棒今天就给大家演示一下linux版的安装教程. 首先在windows系统安装向日葵远控 ...
- mac编译安装php环境,在Mac上编译安装PHP7的开发环境
今天看到鸟哥发微博说php7 beta1测试版发布了,于是赶紧就去抢先下载,把自己的开发环境也升级到PHP7去,话不多少,下面就一起来搞起吧... 首先你得去官网下载php7 beta1的版本 这里由 ...
- 阿里云安装mysql5.7_同一服务器上二进制安装mysql5.7和mysql5.6
一.二进制包与源码包的区别 二进制包和源码包是软件包的两种形式.源码包里面包含程序原始的代码,需要在计算机上进行编译后才可以产生可运行程序,所以源码安装时间会比较长:而二进制包里面包含已经编译过.可马 ...
最新文章
- 用Selenium 爬虫下载文件,解除Chrome 下载警告 (Keep or Discard),设置下载目录的方法
- 人机融合智能与深度态势感知
- 快速排序的递归和非递归
- 实探全球第九大超算中心:温水冷却节能30% 正寻求新突破
- 【知识发现】天池平台新浪微博互动预测-ItemCF推荐方法
- 初识 Vue(10)---(计算属性的 setter 和 getter)
- Jquery 提交 乱码的问题
- 一键解决局域网共享之批处理
- aspeed显卡安装ubuntu驱动
- 如何向外行讲解物联卡2G、3G和4G的区别
- Centos7.X修改hostname立刻生效-修改/etc/hostname后立刻生效-Centos7.x修改hostname永久生效
- 金融量化?金融市场?股票? 来,告诉你这些都是什么
- 微信公众号的用户运营?
- 3D游戏设计-模型与动画
- 删除表字段的sql语句
- (三)mmclassification图像分类——模型训练
- Python 快速入门学习总结
- 竞价推广排名与自然排名的优缺点?
- MySQL8.0.27安装后,使用CMD无法启动mysql服务
- 怎样共享windows和linux之间的文件