01
五 11

php正则回溯

今天公司服务器报了好几警,原因是因为php-cgi出core了,经理叫我追查,通过gdb发现出core的原因是因为正则表达式匹配过程中回溯过多导致栈溢出。
Continue reading →


20
四 11

Memcache与Consistent hashing

一、Consistent hashing
首先求出memcached服务器(节点)的哈希值,并将其配置到0~2的32次幂的圆(continuum)上
然后用同样的方法求出存储数据的键的哈希值,并映射到圆上
然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上
如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上
假设增加一台memcached服务器(节点),只有在continuum上增加服务器的地点逆时针方向到第一台服务器上的键会受到影响
使用一般的hash函数的话,服务器的映射地点的分布非常不均匀,
因此,使用虚拟节点的思想,为每个物理节点(服务器)在continuum上分配100~200个点,
这样就能抑制分布不均匀,最大限度地减小服务器增减时的缓存重新分布
Continue reading →


08
四 11

MySQL Proxy主从读写分离

一、安装MySQL,主机:192.168.1.222/223/224
Continue reading →


07
四 11

MySQL主从原理(转)

一 MySQL 复制的基本过程如下:
1. Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;

2. Master 接收到来自 Slave 的 IO 线程的请求后,通过负责复制的 IO线程根据请求信息读取指定日志指定位置之后的日志信息,返回给 Slave 端的 IO线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在 Master 端的 Binary Log 文件的名称以及在 BinaryLog 中的位置;
Continue reading →


05
三 11

SSH安全登录-基于私钥

1、生成公钥和私钥(以用户a为例)

$ ssh-keygen -t rsa
$ 回车
$ 输入私钥密码
$ 确认私钥密码
$ 将~/.ssh/id_rsa(私钥)下载保存备登录用
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ rm ~/.ssh/{id_rsa,id_rsa.pub}

Continue reading →


04
三 11

小内存LNMP优化

1、MySQL

# vi /etc/my.cnf
--------------
[mysqld]
# 索引缓冲区大小,决定索引处理速度,针对MyISAM表
key_buffer_size = 8M
# 表描述符高速缓存
table_cache = 2M
# 服务器和客户端之间最大能发送的数据包
max_allowed_packet = 1M
# 最大并发连接数
max_connections = 32
default-storage-engine = MyISAM
# 查询缓存大小
query_cache_size = 256K
# 为每个需要进行排序的线程分配的缓冲区大小,加速ORDER BY或GROUP BY操作
sort_buffer_size = 128K
# MyISAM表发生变化时重新排序所需的缓冲
myisam_sort_buffer_size = 4M
# 每个线程栈内存大小
thread_stack = 64K
skip-innodb
==============

Continue reading →


03
三 11

LNMP安装

0.目录准备

# mkdir -p /opt/module/{nginx,mysql}
# mkdir -p /opt/data/{www,mysql}
# mkdir /var/log/nginx
# mkdir -p /var/tmp/nginx/{client,proxy,fcgi}
# mkdri /etc/nginx

1.安装nginx
Continue reading →