天天看点

负载不均衡的原因分析

首先分析一下有哪些原因可能会导致负载不均:

1、lvs自身的汇话保持(persistent10)可能会导致负载不均;

2、调度算法的设置可能会导致;例如rr、wrr、wlc、lc算法;

3、后端RS节点的汇报保持参数,例如apache的keepalive参数;

4、访问量比较少的情况,不均衡的现象更加明显;

5、用户发送的请求时间长短和资源多少大小的关系。

一般直接的解决方法:

到keepalived中注释掉persistent10 ,然后重启即可;(汇话保持使用cookies、sesson解决)

其次可以直接用memcached来作PHP的session.save_handler解决sesson共享问题

转载####老男孩#####

1. 安装memcached服务端软件  #软件包见附件

注意:memcached用libevent来作事件驱动,所以要先安装libevent。

2. 安装memcache客户端件

略,见老男孩培训相关视频教程或谷歌搜下安装。

3. 真正配置的开始

修改配置文件,在php.ini中全局设置:

web集群session共享存储设置:

默认php.ini中session的类型和配置路径:

#session.save_handler = files

#session.save_path = "/tmp"

修改成如下配置:

session.save_handler = memcache

session.save_path = "tcp://10.0.0.18:11211"

提示:

1)10.0.0.18:11211 为memcached数据库缓存的IP及端口。

2)上述适合LNMP,LAMP环境。

3)memcached服务器也可以是多台通过hash调度。

4、用memcached来存储session特点:

优点:

1)读写速度上会比普通files时快很多。

2)可以解决多个服务器共用session的难题。

缺点:

1)session数据都保存在memory中,持久化方面有所欠缺,但对session数据来说不是问题。

2)单点,部署多台,也无法数据同步。通过hash算法分配依然有sesson丢失的问题。

5、大规模企业解决思路:

2)可以用其他的持久化系统存储sessons,例如:redis,ttserver,替代memcached。

3)高性能高并发场景,cookies效率比session要好很多,因此,大网站都会用cookies解决会话共享问题。

继续阅读