1.1 Memcached简介
Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款高性能的分布式内存缓存服务器,通常的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
官方链接:https://memcached.org/
1.2 Memcached物理机调优方法
1.2.1 Memcached亲和性设置
目的:
设置memcached服务的亲和性,使用numactl设置CPU与内存的亲和性。提升服务器性能
方法:
步骤 1 安装numactl
yum -y install numactl
步骤 2 编辑/usr/lib/systemd/system/memcached.service
添加如下内容
ExecStart=/usr/bin/numactl --cpunodebind=0,1 --membind=0,1 /opt/memcached/bin/memcached -t 48 -p 11211 -u root -m 122880 -c 100000
命令参数说明
1.3 Memcached虚拟机调优方法
目的:
修改kvm虚拟机配置文件:配置虚拟机的CPU、内存、网卡。
方法:
步骤 1 编辑虚拟机配置文件。
以虚拟机vm1为例,执行如下语句编辑虚拟机配置文件:
virsh edit vm1
该命令为打开vm1的配置文件,后续步骤2-5均在此基础上完成,修改完成后执行 :wq 保存即可,配置文件需重启虚拟机生效,执行如下命令重启 虚拟机:
virsh shutdown vm1
virsh start vm1
步骤 2 设置vcpu与物理cpu绑定。
设置vcpu与物理cpu绑定的脚本如下所示:
4
步骤 3 设置numa绑定。
设置numa绑定的脚本如下所示:
步骤 4 设置PCIe网卡直通。
设置PCIe网卡直通的脚本如下所示:

其中"domain"、"bus"、"slot"和"function"是对应物理网卡的信息,可以执行lspci或者ethtool -i 网卡名 命令查看。
执行lspci,输出如下结果,只需关注最左侧的数字:
“82:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45)”
其中,网卡的bus-info是16进制数,由上述输出结果最开头的数字82:00.0可以看出,bus为0x82,slot为0x00,function为0x0,domain为0x0000。
步骤 5 设置静态大页。
-
- 宿主机配置静态大页。
在kernel启动时的cmdline添加配置参数,即在/boot目录下的grub.cfg 文件添加如下设置:
transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=200
配置1G的hugepage,需要当前宿主机页表大小为4K。

2.设置内存大页配置。
设置内存大页的脚本如下所示:

1.1 Memcached简介
Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款高性能的分布式内存缓存服务器,通常的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
官方链接:https://memcached.org/
1.2 Memcached物理机调优方法
1.2.1 Memcached亲和性设置
目的:
设置memcached服务的亲和性,使用numactl设置CPU与内存的亲和性。提升服务器性能
方法:
步骤 1 安装numactl
yum -y install numactl
步骤 2 编辑/usr/lib/systemd/system/memcached.service
添加如下内容
ExecStart=/usr/bin/numactl --cpunodebind=0,1 --membind=0,1 /opt/memcached/bin/memcached -t 48 -p 11211 -u root -m 122880 -c 100000
命令参数说明
参数名称
参数说明
cpunodebind=nodes
进程绑定CPU,其中0,1表示绑定node0和node1的core
--membind=nodes
分配进程的内存,其中0,1表示分配的内存在node0和node1上
-t
使用的线程数(48表示使用48个线程)
-p
监听的TCP端口
-u
设定进程所属用户。(只有root用户可以使用这个参数)
-m
分配给memcached实例的内存大小,以MB为单位
-c
最大并发连接数
1.3 Memcached虚拟机调优方法
目的:
修改kvm虚拟机配置文件:配置虚拟机的CPU、内存、网卡。
方法:
步骤 1 编辑虚拟机配置文件。
以虚拟机vm1为例,执行如下语句编辑虚拟机配置文件:
virsh edit vm1
该命令为打开vm1的配置文件,后续步骤2-5均在此基础上完成,修改完成后执行 :wq 保存即可,配置文件需重启虚拟机生效,执行如下命令重启 虚拟机:
virsh shutdown vm1
virsh start vm1
步骤 2 设置vcpu与物理cpu绑定。
设置vcpu与物理cpu绑定的脚本如下所示:
4
参数
说明
vcpu
虚拟核
cpuset
物理核
步骤 3 设置numa绑定。
设置numa绑定的脚本如下所示:
参数
说明
nodeset
物理机numa node
cellid
虚拟机 numa node
步骤 4 设置PCIe网卡直通。
设置PCIe网卡直通的脚本如下所示:
其中"domain"、"bus"、"slot"和"function"是对应物理网卡的信息,可以执行lspci或者ethtool -i 网卡名 命令查看。
执行lspci,输出如下结果,只需关注最左侧的数字:
“82:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (4*25GE) (rev 45)”
其中,网卡的bus-info是16进制数,由上述输出结果最开头的数字82:00.0可以看出,bus为0x82,slot为0x00,function为0x0,domain为0x0000。
步骤 5 设置静态大页。
在kernel启动时的cmdline添加配置参数,即在/boot目录下的grub.cfg 文件添加如下设置:
transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=200
配置1G的hugepage,需要当前宿主机页表大小为4K。
2.设置内存大页配置。
设置内存大页的脚本如下所示: