本站使用自购的腾讯云轻量服务器上,内存只有4G,由于流量有时候会暴涨,偶尔会出现内存紧张而导致系统把 Redis、Mysql 等内存大户kill掉的情况,增加 Swap 可以解决这个问题,但swap性能比内存差太多,因此想到使用 Jemalloc 优化内存占用 。

文章插图
Jemalloc介绍Jemalloc 是 Facebook 推出的内存分配器,目前在 Firefox、Facebook 服务器、Android 5.0 等服务中大量使用,Jemalloc 最大的优势是其强大的多核/多线程分配能力,在内存足够大时,CPU的核心数量越多,程序线程数越多,Jemalloc的分配速度越快,根据测试数据,在高并发时性能优于 Google 推出的 Tcmalloc 和 Glibc 的 Ptmalloc 。
除了性能高,Jemalloc 还降低了内存碎片化,能更好的利用内存 。
优化内存占用Redis 默认使用了 Jemalloc,Redis-cli Info Memory 有如下输出:
【使用 Jemalloc 优化 Mysql与PHP 内存占用】...
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:0
mem_aof_buffer:0
mem_allocator:jemalloc-5.1.0
active_defrag_running:0
lazyfree_pending_objects:0Mariadb/Mysql、PHP 等则默认使用系统自带的 Ptmalloc,因此可以替换成 Jemalloc 获得更好的内存使用率 。
安装 Jemalloc#CentOS系统
yuminstall-yjemalloc
#Ubuntu/Debian系统
aptinstall-ylibjemalloc2安装完成后,CentOS系统在 /usr/bin 目录下会有 Jemalloc.sh 文件 。可以通过 Jemalloc.sh 后续命令执行命令,例如:Jemalloc.sh Node app.js,从而用上 Jemalloc 分配和管理内存 。
对于 Ubuntu/Debian 系统,或者 CentOS 系统上以 Systemctl 启动的服务,需要通过如下方式用上 Jemalloc:
1、设置 LD_PRELOAD 环境变量:export LD_PRELOAD=libjemalloc.so 路径: $LD_PRELOAD,然后再运行命令 / 使用 systemctl 重启服务,其中 CentOS 系统下 libjemalloc.so 的路径是 /usr/lib64/libjemalloc.so.2,Ubuntu/Debian 的路径是 /usr/lib/x86_64-linux-gnu/libjemalloc.so.2,然后应该能想到把 export 语句放置到 .bashrc 文件中,以便后续都生效;
2、设置系统全局使用,方法是新建 /etc/ld.so.preload 文件,把 libjemalloc.so 路径写入文件,然后重启 Mariadb、PHP-FPM 等服务;
本站采取第二种方式,配置好 /etc/ld.so.preload 后重启 Mariadb、PHP-FPM,可通过下面的命令查看是否用上了 Jemalloc:
1、lsof -Pn -p $(pidof mariadbd) | grep jemalloc,配置正确的话会有 Jemalloc.so 的输出;
2、cat /proc/$(pidof mariadbd)/smaps | grep jemalloc,和上述命令有类似的输出;
查看PHP-FPM的方式同理 。
最后总结
本文简要介绍了使用 Jemalloc 优化 Mysql、PHP 内存占用的方法和操作步骤,并给出查看进程是否用上 Jemalloc 的命令,达到优化内存占用的目的 。
通过上述配置,内存优化能有多少呢?说实话对于低于4G内的小内存服务器改进并不大,但对于4G以上有着明显的改观 。
- 桑拿房开关怎么用 酒店汗蒸房怎么使用
- 凝胶露的正确使用方法 大家有没有用过舒美露天然凝胶呢 一种女性
- 美肤宝花之肽玉露润颜花泥怎么使用 闺蜜宝的使用方法和功效
- 脖子上不断长出小肉球 克疣液的使用方法和副作用
- 血府逐瘀片主治什么呢怎么使用呢 血府逐瘀片主治什么病
- 欧莱雅复颜抗皱清乳柔肤水闻起来什么味道 欧莱雅柔肤水使用方法
- sy机动绞磨使用方法 发现一种超爽的sy方法
- 有谁用过白里透红的去斑霜 韩国g2美白祛斑霜使用方法
- 不浪费抗原|不浪费抗原的正确使用方法 为什么发烧了抗原还是阴性
- 金霉素眼膏新生儿能用吗 盐酸金霉素眼膏使用方法
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
