首页 » 问题排查

一次由于MTU设置不当导致的网络访问超时

 

现象 Server A 调用本机的接口,能正常返回。调用Server B的接口,总是超时。被调用接口是能正常执行的,而且有执行日志记录。 Server C 调用Server B的接口也能正常返回。 分析 根据以上,基本可以排除是Server B接口服务的问题导致超时。很有可能 Server A 与 Server B之间的网络有问题。抓包分析如下: Server A 调 ...

在2016的phpcon大会上的分享PPT下载

 

这是在2016年,在phpcon大会上分享的PPT。感谢 锅巴和板子,组织这么好的活动。虽然,大会第一天下起了雨,但是人还是爆满。居然还有来自日本的同学。倍感意外。 以下是PPT几张关键的PPT截图和PPT下载地址: PHP问题排查实践 解决问题的思路 gearman导致cpu100问题解决方法 案例详细分析:《php进程导致服务器cpu ...

crond中使用flock命令的坑

 

现象 需要定期去执行一个PHP脚本,首先想到的是通过crond命令来实现这个功能。但是,在crond的执行过程中发现一个诡异的事情。在crond中的配置如下。 */1 * * * * root /usr/bin/flock -xn /tmp/test.lock -c '/usr/bin/php /home/hailong/test.php > /tmp/test.tt 2>&1' 脚本只会在第一次成功执行,之后就 ...

PHP返回内容过长时被nginx截断的解决办法

 

背景 周日把博客的版本升级到最新,顺便又从新部署了nginx和PHP的环境。使用了PHP7。从新部署环境后发现原先发布博客文章时,编辑框不能正常显示。如图: 分析 查看了html源代码,发现html源代码被截断了。因此,导致网页内容显示不全。 之后的整个分析过程绕了一大圈,即是tcpdump,又是用tcpflow进行网络包分析。最 ...

Gearmand异步处理就安全了吗?不!

 

前言 之前使用Gearman的时候,遇到过一个卡顿的问题。今天微博上又有人问我是否遇到过此类问题。这个问题,当时是伯诚老师解决的。我把他的文章搬过来。希望能给遇到此类问题的人一点参考。 问题 使用Gearman作为异步消息处理中间件是却没有想象中的顺利。我们多次发现Gearmand进程会将PHP的请求Hold住,不做任何响应, ...

[坑]打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做简单的注释说明。主题分为三部分,常见问题,解决思路和案例分析。 常见问题 不同用户看到的错误可能不一样。一般用户看到的错误都是表层的现象。如,裸奔的错 ...

tcpdump 和 wireshark组合拳,揪出有问题的机器

 

现象 mysqlnd的超时时间设置为2s后,出现了一个诡异的现象。在php的error log中出现了一些错误信息。如下: [20-Dec-2014 21:20:17] WARNING: [pool www] child 31401 said into stderr: "NOTICE: PHP message: PHP Warning: PDO::__construct(): MySQL server has gone away in ./abstract.class.php on line 26" 第 ...

使用tcpdump排查mysql数据库tps飙升的问题

 

现象 上线后习惯性的观察数据库的变化。发现数据库的tps有很大的飙升。不过幸好在双十一的时候在数据库方面做了一些完善,虽然主库的tps有飙升,但是总体load还不是很高。但是问题既然出现了,还是要解决的。 排查过程 确定是insert update 还是 delete操作导致tps高? 既然是tps高,那就说明数据库修改的操作多了。到 ...

*** glibc detected ***

 

现象: 今天线上一台服务器的php打算升级到php5.5,导入流量后,在php的error log中出现了一些 glibc delected错误。 如: *** glibc detected *** ./test: double free or corruption (fasttop): 0x00000000049cc010 *** 原因: 重复free 示例: #include"stdio.h" #include "stdlib.h" #include ...

/usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory

 

问题: 当你执行yum 命令时提示如下错误: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory 解决方法: 上面的提示说明yum脚本没有找到python命令。 只要找到python命令的路径,然后建立个软链接即可。 如: sudo ln -s /usr/bin/python2.4 /usr/bin/python ps: yum命令是用python脚本写的 ...

mysql的cardinality异常,导致索引不可用

 

前段时间,一大早上,就收到报警,警告php-fpm进程的数量超过阈值。最终发现是一条sql没用到索引,导致执行数据库查询慢了,最终导致php-fpm进程数增加。最终通过analyze table feed_comment_info_id_0000 命令更新了Cardinality ,才能再次用到索引。 排查过程如下: sql语句: select id from feed_comment_info_id_ ...