memcached平滑升级

本文档详细介绍了如何升级Memcached以修复安全漏洞。首先,备份当前配置和端口信息,然后下载最新版本的Memcached和libevent安装包。在停止前端服务的情况下进行升级,确保无用户请求。接着,卸载旧版libevent,安装新版本,并安装Memcached。在升级过程中,注意可能遇到的问题,如找不到libevent.so,可通过创建软链接解决。最后,关闭旧Memcached进程,使用备份的参数启动新版本,并验证升级成功。整个过程涉及服务器维护、软件升级和故障排查,确保服务稳定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  1. 简介

 

  1. 目的

升级Memcached,修复Memcached漏洞

 

  1. 范围

Memcached问题修复

  1. Memcached升级准备:
  2. 环境备份

升级前备份memcached启动的端口及参数,以备升级后使用

执行命令:

ps -ef|grep memcached

 

得出如下:

 -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

升级后使用此参数启动(注:不同服务器端口及参数不一样。请根据实际情况备份)

/usr/local/memcached/bin/memcached  为原路径

升级时,可根据实际情况自定义安装路径(注:建议不同路径)

  1. Memcached安装包获取

官方网站:http://memcached.org/

下载地址:

http://www.memcached.org/files/memcached-1.4.33.tar.gz 

https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz(libevent下载地址)

 

 

  1. 停止前端的请求

升级操作,注意在停前端服务的情况下升级。

  1. 安装Memcached
  2.   安装注意事项

memcached依赖于libevent,因此需要安装libevent。由于linux系统可能默认已经安装libevent,(注:建议卸载再新安装)执行命令:

rpm -qa|grep libevent

查看系统是否带有该安装软件,如果有执行命令:

rpm -e libevent-1.4.13-4.el6.x86_64 --nodeps(由于系统自带的版本旧,忽略依赖删除)

  1. 安装libevent(如不卸载)

tar zxvf libevent-2.0.21-stable.tar.gz

  cd libevent-2.0.21-stable

  ./configure --prefix=/usr/local/libevent

  make

  make install

以上目录自定义。

  1. 安装Memcached

tar zxvf memcached-1.4.2.tar.gz

  cd memcached-memcached-1.4.2

  ./configure --prefix=/***/****/memcached --with-libevent=/usr/local/libevent/

make

make install

以上Memcached的路径自定义(建议不覆盖安装) 

libevent以上一步实际路径为准

至此memcached安装完毕;

  1. 常见故障(启动无问题,)

当启动memcached时经常不能发现libevent.so;可以通过以下命令检查:

   进入/usr/local/memcached/bin目录

   LD_DEBUG=help ./memcached -v

   LD_DEBUG=libs  ./ memcached -v

   解决方法:

   ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /lib64/libevent-2.0.so.5

 

  1. 关闭原Memcached进程

kill -9 `ps -ef|grep memcached|grep -v grep|awk ‘{print $1}’`

  1. 启动新Memcached

使用备份的参数启动: -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

新Memcached目录:(ps:/****/***/memcached/bin/)

/***/***/memcached/bin/memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

 

注释:::

  1. memcached 1.4.2  
  2. -p       监听的TCP端口(默认: 11211)  
  3. -U       监听的UDP端口(默认: 112110表示不监听)  
  4. -s      用于监听的UNIX套接字路径(禁用网络支持)  
  5. -a      UNIX套接字访问掩码,八进制数字(默认:0700)  
  6. -l   监听的IP地址。(默认:INADDR_ANY,所有地址)  
  7. -d            作为守护进程来运行。  
  8. -r            最大核心文件限制。  
  9. -u  设定进程所属用户。(只有root用户可以使用这个参数)  
  10. -m       单个数据项的最大可用内存,以MB为单位。(默认:64MB)  
  11. -M            内存用光时报错。(不会删除数据)  
  12. -c       最大并发连接数。(默认:1024)  
  13. -k            锁定所有内存页。注意你可以锁定的内存上限。  
  14.               试图分配更多内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限。  
  15.               (不是前面的 -u  参数;在sh下,使用命令"ulimit -S -l NUM_KB"来设置。)  
  16. -v            提示信息(在事件循环中打印错误/警告信息。)  
  17. -vv           详细信息(还打印客户端命令/响应)  
  18. -vvv          超详细信息(还打印内部状态的变化)  
  19. -h            打印这个帮助信息并退出。  
  20. -i            打印memcached和libevent的许可。  
  21. -P      保存进程ID到指定文件,只有在使用 -d 选项的时候才有意义。  
  22. -f    块大小增长因子。(默认:1.25)  
  23. -n     分配给key+value+flags的最小空间(默认:48)  
  24. -L            尝试使用大内存页(如果可用的话)。提高内存页尺寸可以减少"页表缓冲(TLB)"丢失次数,提高运行效率。  
  25.               为了从操作系统获得大内存页,memcached会把全部数据项分配到一个大区块。  
  26. -D      使用  作为前缀和ID的分隔符。  
  27.               这个用于按前缀获得状态报告。默认是":"(冒号)。  
  28.               如果指定了这个参数,则状态收集会自动开启;如果没指定,则需要用命令"stats detail on"来开启。  
  29. -t       使用的线程数(默认:4)  
  30. -R            每个连接可处理的最大请求数。  
  31. -C            禁用CAS。  
  32. -b            设置后台日志队列的长度(默认:1024)  
  33. -B            绑定协议 - 可能值:ascii,binary,auto(默认)  
  34. -I            重写每个数据页尺寸。调整数据项最大尺寸。 

 

  1. 验证

/***/***/memcached/bin/memcached -h

 

显示版本1.4.33.已完成升级。

测试应用。完成升级

  1. Memcached环境升级流程
  2. 192.168.130.74、75
  3. 升级192.168.130.75

因74、75服务器通过keepalived组成Memcached集群。先升级75。

  1. 升级192.168.130.74

关闭192.168.130.74原Memcached进程后。在192.168.130.75执行:

 ip a 

查看vip是否已漂移至192.168.130.75

  1. 验证vip

在192.168.130.74执行:

 

ip a 

确认vip是否已漂移回192.168.130.74

 

  1. 验证vip Memcached服务

telnet 192.168.130.76 11211

 

 

  1. 192.168.130.38/63

参照以上步骤

  1. 192.168.130.37/62

参照以上步骤

 

  1. 环境回滚

若出现必须回滚的情况,停止新Memcached服务,使用原Memcached启动即可.如:

原参数:

 -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

升级后使用此参数启动(注:不同服务器端口及参数不一样。请根据实际情况备份)

原路径: /usr/local/memcached/bin/memcached 

 

 /usr/local/memcached/bin/memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid

 

 

                                                                                              

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值