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

Author Archives: 信海龙

xhprof gui,让xhprof界面更漂亮,功能更强大

 

顾名思义,xhprof gui 就是一个xhprof的一个ui展现。作者hack了facebook发布的xhprof展现代码。使xhprof界面更漂亮,功能更强大。 xhprof gui新增了如下特性: * 友好的界面 * 数据库存储(mysql) * 支持按请求百分比执行xhprof优化。降低服务器负载。 * 支持相似url的概念。如:http://news.example.com/?story=23 ht ...

core dump磁盘报警问题排查过程

 

磁盘报警。分区磁盘容量已经占用超过80%。同一批上线的几台机器都没报警。而且离报警阀值还差很远。 大概的排查步骤如下: 首先,查找导致磁盘报警的大文件 $ find /home/ -type f -size +100M /home/demo/web/demo/api/core.7982 /home/demo/web/demo/api/core.10035 ..................... 此处省略N多行 ......... ...

当cpu飙升时,找出php中可能有问题的代码行

 

当你发现一个平时占用cpu比较少的进程突然间占用cpu接近100%时,你如何找到导致cpu飙升的原因?我的思路是,首先找到进程正在执行的代码行,从而确定可能有问题的代码段。然后,再仔细分析有问题的代码段,从而找出原因。 如果你的程序使用的是c、c++编写,那么你可以很容易的找到正在执行的代码行。但是,程序是php编 ...

php内核探索之zend_execute的具体执行过程

 

解释器引擎最终执行op的函数是zend_execute,实际上zend_execute是一个函数指针,在引擎初始化的时候zend_execute默认指向了execute,这个execute定义在{PHPSRC}/Zend/zend_vm_execute.h: ZEND_API void execute(zend_op_array *op_array TSRMLS_DC) { zend_execute_data *execute_data; zend_bool nest ...

一次DNS域名解析问题排查记录

 

通过http的方式调用了其他引擎的数据。调用数据出现问题。出现问题时,现象如下: [hailong.xhl@s006130 logs]$curl "http://demo.bo56.com:2088/bin/search?append=k" [hailong.xhl@s006130 logs]$curl: (7) couldn't connect to host 继续跟踪,发现连接的是一个实体机ip,而非vip。 connect(3, {sa_fa ...

如何找出发生SEGV内存错误的程序

 

前言 这个可以说是《小心,apc可能导致php-fpm罢工!》的续。因为这篇文章有个问题没说清楚,而且映雪同学昨天又问起这个问题。 ​ ​问题 ​18-Feb-2014 15:48:45] WARNING: [pool www] child 11274 exited on signal 11 (SIGSEGV) after 0.089068 seconds from start 显然11274进程运行过程中遇到了段错误导致进程异常 ...

怎样用core文件调试你的linux程序?

 

core dump 文件对于诊断linux中程序的问题非常有用。当程序异常退出的时候,可能会生成core文件。如,程序写一个不属于他的内存,操作系统出于保护,会发信号给程序,程序可能会因此而退出,退出的时候可能会生成core文件。我们可以通过分析core文件,找出程序中那里有内存问题。这篇文章主要是阐述生成core文件需要做 ...

linux下cp,mv进行动态库覆盖问题分析

 

本文是引用@五牧同学在阿里ata上发表的文章。感觉分析的比较透彻,分享给大家。 问题的起因在来源于周会上钟老板提出的一个问题,cp新的so文件替换老的so,会导致程序core掉。这个问题引起了大家的热烈讨论,其中提及了的名词有inode,dentry,buserror等,比较混乱,由于功力浅薄,当时也没有十分清楚引起core掉的原因 ...

php中如何设置mysql查询读取数据的超时时间

 

现象: php能通过代理正常连接到mysql。但是,执行query后,一直等待,没有任何数据返回。 结果导致php-fpm进程全部阻塞在读取数据的地方。不能处理其他正常请求。 解决方法: 可以通过设置mysql查杀的超时时间来解决这个问题。 第一种设置mysql查询超时时间的方法是使用mysqlnd。 关于msyqlnd的介绍,大家可以看下这篇 ...

PHP MysqlND 简介

 

简介: mysql native driver 作为php的扩展,取代了libmysqlclient ,为php在 mysql ,mysqli pdomysql 上 提供mysql 的支持。 安装: ./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd ./configure —enable-mysqlnd 优点: 1、mysqlnd更容易编译; 因为它是php源码树的一个组成部分 2 ...

小心,apc可能导致php-fpm罢工!

 

最近访问网站,发现出现了502错误。一般出现502错误,都是php-fpm 进程处理请求时出现异常导致的。 首先,查看了php-fpm 的进程数。发现php-fpm的进程数已经到达了php-fpm.conf中设置的最大值。最近流量没有大的变动,这么多php-fpm进程,肯定有问题。 ​然后,用pstack命令查看这些php-fpm进程都在干啥。 ​[hailong.x ...