memcached 实验论文

时间:2022-11-09 20:10:33

虽然在这个年龄段谈话memcached 它可能是一个有点晚,最为cached 在应用程序中redis 在之上,下面将谈谈自己的一些看法,

这个文件是不是memcached 理论描述,只写的实验数据和结果。

基本參数:能够參考下(当中带 # # 为应该掌握的參数)

-U  #  #<num> 监听的UDPport(默认: 11211, 0表示不监听)
-s #<file> 用于监听的UNIX套接字路径(禁用网络支持)
-a #<mask> UNIX套接字訪问掩码,八进制数字(默认:0700)
-l # #<ip_addr> 监听的IP地址。(默认:INADDR_ANY。全部地址)
-d # #作为守护进程来执行。
-r # #最大核心文件限制。
-u # #<username> 设定进程所属用户。(仅仅有root用户能够使用这个參数)
-m # #<num> 单个数据项的最大可用内存,以MB为单位。 (默认:64MB)
-M #内存用光时报错。(不会删除数据)
-c # #<num> 最大并发连接数。 (默认:1024)
-k #锁定全部内存页。 注意你能够锁定的内存上限。
##试图分配很多其它内存会失败的,所以留意启动守护进程时所用的用户可分配的内存上限。 ##(不是前面的 -u <username> 參数。在sh下,使用命令"ulimit -S -l NUM_KB"来设置。)
-v #提示信息(在事件循环中打印错误/警告信息。)
-vv #具体信息(还打印client命令/响应)
-vvv #超具体信息(还打印内部状态的变化)
-h #打印这个帮助信息并退出。 -i #打印memcached和libevent的许可。
-P # #<file> 保存进程ID到指定文件。仅仅有在使用 -d 选项的时候才有意义。
-f #<factor> 块大小增长因子。(默认:1.25)
-n #<bytes> 分配给key+value+flags的最小空间(默认:48)
-L #尝试使用大内存页(假设可用的话)。 提高内存页尺寸能够降低"页表缓冲(TLB)"丢失次数,提高执行效率。
#为了从操作系统获得大内存页,memcached会把全部数据项分配到一个大区块。
-D #<char> 使用 <char> 作为前缀和ID的分隔符。
#这个用于按前缀获得状态报告。默认是":"(冒号)。 #假设指定了这个參数,则状态收集会自己主动开启;假设没指定。则须要用命令"stats detail on"来开启。 -t # #<num> 使用的线程数(默认:4)
-R # #每一个连接可处理的最大请求数。
-x  #  #repcached 用来指定Master IP 的配置 : -x <IP>
-X  #  #repcached 用来指定Master PORT 的配置:-X <PORT>

实现结果:

实现採用两台机器做 主-主、主-从、三台机器、抓包分析获得:

######配置
#主1 memcached -d -v -m 100 -u root -l 192.168.1.253 -p 12000 -c 1024 -x 192.168.1.254 -X 11212 -P /tmp/memcached.pid
#从2 memcached -d -v -m 100 -u root -l 192.168.1.254 -p 12001 -c 1024 -P /tmp/memcached.pid -x 192.168.1.253 -X 11212 ##结论1
# repcache-memcached 双主从中步时,两台可同一时候进行 get , set 等操作 ##结论2
# 当一台主意外停掉memcached 时(实验中採用 kill 掉) ,再次启动memcached 时会在还有一台内存中copy 一份实时数据到自已内存中 -- 重要 ##结论3
# 假设不指定 -x -X 參数的memcached 停掉时,再次启动时 [不会] 在其他memcached 中复制数据到内存中 ##结论4
# 192.168.1.253(12000)[-x 192.168.1.254 -X 11212] <--------> 192.168.1.254(12001)[-x 192.168.1.253 -X 11212]
# | |
# | |
# | |
# 192.168.1.243(12002)[ -x 192.168.1.253 -X 11212 或者 -x 192.168.1.254 -X 11212] 都不成都
#
# 实验结论: repcached 仅仅能做两台复制 仅仅能 主-主模式 或者 主-从模式
# repcached 不能单主-双从模式, 不能双主多重模式 ##结论5
# repcached-memcached 数据同步底层使用TCP长链接发送数据,数据处于明文状态 ##结论6
# repcached-memcached 从在启动时, 从首先利用配置中的 -x -X 指定的IP,port与主建立TCP持久连接,
# 链接建立完毕后 主開始发送 内存数据给从,一条发送一条内存数据,
# 主最后一条发送完毕标志给从,告诉从数据已经发送完毕,从初始化内存数据并開始对处提供服务. ##结论7
# 利用iptables 模拟断网过程
# 当断网到恢复状态时,双主环境能够又一次同步内存数据
# 当断网到恢复状态时,双从环境下,仅仅有从同步主中内存数据而主并不会同步从中内存数据(全然靠 -x -X 来指定连立新的TCP连接来同步)
# 同步后恢复杂的正常使用

版权声明:本文博主原创文章,博客,未经同意不得转载。