<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[接口超时]在Nginx里的PHP输出接口进行strace时发现的超时问题备案，有可能是Mysql Server里域名解析导致。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Wed, 05 Jun 2013 10:17:18 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	Nginx里有一个PHP的接口，发现是PHP的超时，于是经过strace时发现：<br/><textarea name="code" class="php" rows="15" cols="100">
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, &#123;B38400 opost isig icanon echo ...&#125;) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)&nbsp;&nbsp;= 0
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
close(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= 0
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 3
fcntl(3, F_GETFL)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR&#124;O_NONBLOCK)&nbsp;&nbsp;&nbsp;&nbsp;= 0
connect(3, &#123;sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr(&quot;192.168.108.8&quot;)&#125;, 16) = -1 EINPROGRESS (Operation now in progress)
poll([&#123;fd=3, events=POLLOUT&#125;], 1, 300000) = 1 ([&#123;fd=3, revents=POLLOUT&#125;])
getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
sendto(3, &quot;GET /album/getAlbumsByUserId?app&quot;..., 313, MSG_NOSIGNAL, NULL, 0) = 313
poll([&#123;fd=3, events=POLLIN&#125;], 1, 1000)&nbsp;&nbsp;= 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 0)&nbsp;&nbsp;&nbsp;&nbsp; = 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 1000)&nbsp;&nbsp;= 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 0)&nbsp;&nbsp;&nbsp;&nbsp; = 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 1000)&nbsp;&nbsp;= 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 0)&nbsp;&nbsp;&nbsp;&nbsp; = 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 1000)&nbsp;&nbsp;= 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 0)&nbsp;&nbsp;&nbsp;&nbsp; = 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 1000)&nbsp;&nbsp;= 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 0)&nbsp;&nbsp;&nbsp;&nbsp; = 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 1000)&nbsp;&nbsp;= 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 0)&nbsp;&nbsp;&nbsp;&nbsp; = 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 1000)&nbsp;&nbsp;= 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 0)&nbsp;&nbsp;&nbsp;&nbsp; = 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 1000)&nbsp;&nbsp;= 0 (Timeout)
poll([&#123;fd=3, events=POLLIN&#125;], 1, 0)&nbsp;&nbsp;&nbsp;&nbsp; = 0 (Timeout)
</textarea><br/><br/>经过xdebug发现它是由于数据库访问这个函数超时引起的，有5秒到15秒之多，但是把这个SQL贴在终端里访问，发现它很快才几毫秒。<br/>用下面的sleep代码也能形成TimeOut，如下：<br/><textarea name="code" class="php" rows="15" cols="100">
sleep(10);
echo &quot;Helo&quot;; exit; 
</textarea><br/><br/>我在想，是192.168.109.8访问192.168.109.7上中间有时会有波动造成的，还是因为PHP连接时超时呢？需要进一步了解啊。<br/><br/><br/><br/>有一个域名反解的配置把这个去掉：<br/>skip-name-resolve<br/><br/>修改配置文件添加并需要重启：<br/><textarea name="code" class="php" rows="15" cols="100">
[mysqld] 
skip-name-resolve
</textarea><br/><br/><br/>修改my.cnf的配置文件添加并需要重启，试试：<br/>[mysqld] <br/>skip-name-resolve<br/><br/><br/>感觉通过一个脚本访问好像好了，需要时间验证，脚本：<br/>http://www.jackxiang.com/post/6421/<br/><br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [接口超时]在Nginx里的PHP输出接口进行strace时发现的超时问题备案，有可能是Mysql Server里域名解析导致。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>