首页 » 作者存档: 信海龙 ( 第 5 页 )

Author Archives: 信海龙

[坑]打rpm包时,注意%post和%postun的执行顺序

 

问题 掉进坑里面了。最近完成了阿里PHP5.5.25的rpm打包。今天在升级其中一个扩展的时候发现,只要升级成功之后,扩展在配置文件中相关配置项就会被注释掉。最终定位到是spec文件中%postun段写的有问题。 spec文件中%postun段的代码示例如下: %postun conf_path="/php-fpm/lib/php.ini" sed -i 's/^\[tclip\]/;\[tclip ...

线上PHP问题排查思路与实践

 

前言 前几天,在一淘网,腾讯网媒和微博商业技术联合组织的技术分享大会上,我分享了《在线PHP问题排查思路与实践》。此博文除了对PPT提供下载外,还会对ppt做简单的注释说明。主题分为三部分,常见问题,解决思路和案例分析。 常见问题 不同用户看到的错误可能不一样。一般用户看到的错误都是表层的现象。如,裸奔的错 ...

linux mac中实现类似secureCRT的clone session

 

在你的登录账户下的.ssh文件夹新建一个文件:config. cd ~/.ssh vi config config的文件中,内容为: host * ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p 重新打开终端,第一次,你还是需要输入密码,第二次ssh登录同一台机器,你就不用输入密码了,跟secureCRT一样的clone session的方式一样。 这个文件的 ...

ssh免密码登陆设置时Authentication refused: bad ownership or modes错误解决方法

 

问题 设置ssh免密码登陆的时候,发现有一些机器设置不生效。有一些机器正常。 跟踪 登陆目标机器,查看sshd的日志信息。日志信息目录为,/var/log/secure 你会发现如下字样的日志信息。 Jul 22 14:20:33 v138020.go sshd[4917]: Authentication refused: bad ownership or modes for directory /home/xinhailong 原因 s ...

mysql索引合并:一条sql可以使用多个索引

 

前言 mysql的索引合并并不是什么新特性。早在mysql5.0版本就已经实现。之所以还写这篇博文,是因为好多人还一直保留着一条sql语句只能使用一个索引的错误观念。本文会通过一些示例来说明如何使用索引合并。 什么是索引合并 下面我们看下mysql文档中对索引合并的说明: The Index Merge method is used to retrieve rows ...

linux下redis执行bgsave时,报overcommit_memory错误问题

 

现象 一台机器如果内存用完,在进行bgsave时,可能会报错。错误信息大概如下: [1946] 23 Mar 15:21:02.308 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the comm ...

使用varnish + nginx + lua搭建网站的降级系统

 

前言 通常一个网站数据库挂掉后,后果将是非常严重的。基本上整个网站基本不可用了。对于一些网站来说,当数据库挂掉后,如果能提供基本的浏览服务,也是不错的。本文将尝试使用varnish + nginx + lua 搭建网站降级系统来实现整个目标。 降级目标 降级方案的目标是,当网站出现致命故障时(如出现500错误,不能提供服务 ...

向facebook学习,通过协程实现mysql查询的异步化

 

前言 最近学习了赵海平的演讲,了解到facebook的mysql查询可以进行异步化,从而提高性能。由于facebook实现的比较早,他们不得不对php进行hack才得以实现。现在的php5.5,已经无需hack就可以实现了。 对于一个web网站的性能来说,瓶颈多半是来自于数据库。一般数据库查询会在某个请求的整体耗时中占很大比例。如果能提 ...

php中mysql数据库异步查询实现

 

问题 通常一个web应用的性能瓶颈在数据库。因为,通常情况下php中mysql查询是串行的。也就是说,如果指定两条sql语句时,第二条sql语句会等到第一条sql语句执行完毕再去执行。这个时候,如果执行2条sql语句,每条执行时间为50ms,全部执行完毕可能需要100ms。既然,主要原因是sql的串行执行导致。那我们是不是可以改变 ...

kvproxy配置文件之集群设置

 

简介 kvproxy中集群分为三种。默认集群,读集群和备份集群。读集群和备份集群都是可选项。如果没有设置读集群,将会从默认集群读取数据。如果没有设置备份集群,将不会做数据同步操作。更多kvproxy的信息请查看 集群设置 以下是集群设置中需要注意的几个因素。 1、集群名可以自己制定 2、每个集群中的数字id不能重复。 ...

kvproxy的数据主从复制简介

 

简介 kvproxy的一个很重要的特性是能实现主从集群间的数据同步。有点类似于mysql和redis的主从数据同步。之所以实现这个功能,是因为在使用memcached的时候,有些时候需要两个集群间保持数据一致。而memcached又没有提供类似的功能。如果想了解更多的kvproxy的一些特性,请查看博文。 应用场景 一般需要搭建主从两个数 ...

nginx location在配置中的优先级

 

location表达式类型 ~ 表示执行一个正则匹配,区分大小写 ~* 表示执行一个正则匹配,不区分大小写 ^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location。 = 进行普通字符精确匹配。也就是完全匹配。 @ "@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_f ...