今天公司服务器报了好几警,原因是因为php-cgi出core了,经理叫我追查,通过gdb发现出core的原因是因为正则表达式匹配过程中回溯过多导致栈溢出。
Continue reading →
01
五 11
php正则回溯
20
四 11
Memcache与Consistent hashing
一、Consistent hashing
首先求出memcached服务器(节点)的哈希值,并将其配置到0~2的32次幂的圆(continuum)上
然后用同样的方法求出存储数据的键的哈希值,并映射到圆上
然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上
如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上
假设增加一台memcached服务器(节点),只有在continuum上增加服务器的地点逆时针方向到第一台服务器上的键会受到影响
使用一般的hash函数的话,服务器的映射地点的分布非常不均匀,
因此,使用虚拟节点的思想,为每个物理节点(服务器)在continuum上分配100~200个点,
这样就能抑制分布不均匀,最大限度地减小服务器增减时的缓存重新分布
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}
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 ==============
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 →