<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>我晕 &#187; 系统</title>
	<atom:link href="http://ifaint.com/category/sa/feed/" rel="self" type="application/rss+xml" />
	<link>http://ifaint.com</link>
	<description>其实我不晕：）</description>
	<lastBuildDate>Wed, 06 Apr 2011 02:57:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>centos下nginx+php-fpm报upstream timed out错误解决方案</title>
		<link>http://ifaint.com/2010/12/centos_nginx_phpfpm_upstream-timed-out_error_fixed/</link>
		<comments>http://ifaint.com/2010/12/centos_nginx_phpfpm_upstream-timed-out_error_fixed/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 08:42:36 +0000</pubDate>
		<dc:creator>chy</dc:creator>
				<category><![CDATA[系统]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[upstream timed out]]></category>

		<guid isPermaLink="false">http://ifaint.com/?p=59</guid>
		<description><![CDATA[最近迁移一个网站, 从 ubuntu 9.10 迁移到 centos 5.2.* 下出现了比较怪异的错误,每天都要在错误日志里看到几百个 upstream timed out 的错误.
2010/12/15 22:32:45 [error] 3897#0: *1831129 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 116.217.163.37, server: xxx.com.cn, request: &#8220;GET / HTTP/1.1&#8243;, upstream: &#8220;fastcgi://127.0.0.1:9000&#8243;, host: &#8220;xxx.com.cn&#8221;, referrer: &#8220;http://xxx.com.cn/&#8221;
从日志的表示来看应该不是nginx的问题,而是 fast-cgi 执行超时没有及时返回数据到ngnix的问题. 可web和数据库负载都不高,不应该是程序超时的问题. 查资料也没有找到原因,网上于几个人说遇到同样问题,也没有好的解决方案. 后来仔细分析日志,发现出现错误的日志的时间都是大于当前时间,这点很奇怪,难道是系统时间的问题? 后来再仔细查资料,才找到原因. 原来是 centos 的一个内核bug, 调用gettimeofday()这个函数的时候会比当前时间快4398秒.  具体原因是因为多核cpu,各核的TSC不一样造成的.  看来 [...]]]></description>
			<content:encoded><![CDATA[<p>最近迁移一个网站, 从 ubuntu 9.10 迁移到 centos 5.2.* 下出现了比较怪异的错误,每天都要在错误日志里看到几百个 upstream timed out 的错误.</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica} span.s1 {text-decoration: underline ; color: #053df5} -->2010/12/15 22:32:45 [error] 3897#0: *1831129 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 116.217.163.37, server: xxx.com.cn, request: &#8220;GET / HTTP/1.1&#8243;, upstream: &#8220;fastcgi://127.0.0.1:9000&#8243;, host: &#8220;xxx.com.cn&#8221;, referrer: &#8220;http://xxx.com.cn/&#8221;</p>
<p>从日志的表示来看应该不是nginx的问题,而是 fast-cgi 执行超时没有及时返回数据到ngnix的问题. 可web和数据库负载都不高,不应该是程序超时的问题. 查资料也没有找到原因,网上于几个人说遇到同样问题,也没有好的解决方案. 后来仔细分析日志,发现出现错误的日志的时间都是大于当前时间,这点很奇怪,难道是系统时间的问题? 后来再仔细查资料,才找到原因. 原来是 centos 的一个内核bug, 调用gettimeofday()这个函数的时候会比当前时间快4398秒.  具体原因是因为多核cpu,各核的TSC不一样造成的.  看来 fast-cgi 应该是调用了这个函数的.</p>
<p>解决方案是升级内核..  相信很多和我一样不是专业sa的兄弟对升级内核之类的事情还是比较犯怵的,不过不用担心有一个不用升级内核的解决方案. 在不升级kernel的情况下，可以考虑修改time source，来解决。修改kernel option。</p>
<p>具体操作如下:</p>
<p>vim /etc/grub.conf</p>
<p>kernel /vmlinuz-2.6.9-1.667 ro root=/dev/hda2 <strong><span style="color: #ff0000;">clock=pit</span> (红色部分为新增的)</strong></p>
<p>然后重启服务器,问题解决.  我的产品环境已经3天没有报这个错误了.</p>
<p>感谢一下,<a href="http://rainbird.blog.51cto.com/">优米的SA</a>提供的支持:)</p>
<p>参考资料:</p>
<p><a href="http://blog.chinaunix.net/u/31357/showart_1302796.html">http://blog.chinaunix.net/u/31357/showart_1302796.html</a><br />
<a href="http://tonykorn97.itpub.net/post/6414/456362">http://tonykorn97.itpub.net/post/6414/456362</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ifaint.com/2010/12/centos_nginx_phpfpm_upstream-timed-out_error_fixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我晕！网站管理员工具（google webmasters) 如此重要</title>
		<link>http://ifaint.com/2010/08/google_webmasters/</link>
		<comments>http://ifaint.com/2010/08/google_webmasters/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 03:57:56 +0000</pubDate>
		<dc:creator>chy</dc:creator>
				<category><![CDATA[系统]]></category>
		<category><![CDATA[cc攻击]]></category>
		<category><![CDATA[webmasters]]></category>
		<category><![CDATA[网站管理员工具]]></category>

		<guid isPermaLink="false">http://ifaint.com/?p=52</guid>
		<description><![CDATA[昨天打开了一下google的网站管理员工具，看到了触目惊心的一张统计图
天那，google3个月来几乎没怎么抓取我的网站。。。 难怪我的pr从8掉到了7，再回头看看数据统计，更是夸张，下面是从google来访的统计这是怎么回事儿呢？ 基本可以判定是google的爬虫无法访问我的网站，或者访问的过程中遇到了什么障碍。
接下来就是分析问题的原因了
1. 首先查看网站的日志，发现最新的1000条里还有googlebot 造访的记录
2. 用google搜我一直排第一的关键词，结果前10页都没有翻到我，排第一的是一个极其恶心的网站，郁闷。
3. 用google网站管理员工具种的像google bot 一样去抓取功能，抓一下首页，发现失败，看来真的是google无法访问我的网站。
4. 看来要找google访问不了我的原因了，服务器是我独用的，没有其他网站，也没有邮件服务器或者其他，更没有欺骗搜索引擎的脚本，所以ip被google封掉的可能性不大。那就只能说明是我把google的ip封掉了！ 因为之前遭遇cc攻击，写过一个封禁的脚本，自动把访问量超过一定限制的ip用iptables block 掉。
5. 我把 iptables 暂时停用，然后再用google网站管理员工具模拟一下googlebot，神奇的事情发生了，居然立即显示了成功状态和抓取结果。赶紧再查一下日志，发现google是通过 203.208.60.x 这个ip来抓取的。赶紧再去看一下封禁记录，发现这个c段的四五个ip都是在4月份被我的脚本自动封掉的:(  记得我当时还是分析了3个月的googlebot抓取的频率，才设定的每分钟访问动态页面超过150个被视为攻击，脚本跑了一年多，也没见google或者baidu的抓取异常。。。 莫非今年4月份的时候google修改了抓取频率了？
6. 回想起当年写这个脚本的原因，就是在08年底的时候遭遇了恐怖的cc攻击，后来写了脚本防范，为了防止误杀搜索引擎，所以加了 grep -i  &#8216;xxxx&#124;xxxx&#8217; 的管道，结果这个攻击的人更过分，直接把 refferr 写成和 google bot 一样的方式，几千国外代理一起上来！然后我又改算法。。。。
结果搞清楚了，也可以避免问题的发生了，在这里要提醒做站的朋友，google webmasters 是个好东西，一定要定期查看。写自动封禁的脚本，一定要考虑到搜索引擎误伤问题，千万别犯我一样的错误。


]]></description>
			<content:encoded><![CDATA[<p>昨天打开了一下google的网站管理员工具，看到了触目惊心的一张统计图</p>
<p><a href="http://ifaint.com/wp-content/uploads/2010/08/webmasters_image.png"><img class="aligncenter size-medium wp-image-54" title="webmasters_image" src="http://ifaint.com/wp-content/uploads/2010/08/webmasters_image-300x97.png" alt="" width="300" height="97" /></a>天那，google3个月来几乎没怎么抓取我的网站。。。 难怪我的pr从8掉到了7，再回头看看数据统计，更是夸张，下面是从google来访的统计<a href="http://ifaint.com/wp-content/uploads/2010/08/google_analytics_image.png"><img class="aligncenter size-medium wp-image-55" title="google_analytics_image" src="http://ifaint.com/wp-content/uploads/2010/08/google_analytics_image-300x112.png" alt="" width="300" height="112" /></a>这是怎么回事儿呢？ 基本可以判定是google的爬虫无法访问我的网站，或者访问的过程中遇到了什么障碍。</p>
<p>接下来就是分析问题的原因了</p>
<p>1. 首先查看网站的日志，发现最新的1000条里还有googlebot 造访的记录</p>
<p>2. 用google搜我一直排第一的关键词，结果前10页都没有翻到我，排第一的是一个极其恶心的网站，郁闷。</p>
<p>3. 用google网站管理员工具种的像google bot 一样去抓取功能，抓一下首页，发现失败，看来真的是google无法访问我的网站。</p>
<p>4. 看来要找google访问不了我的原因了，服务器是我独用的，没有其他网站，也没有邮件服务器或者其他，更没有欺骗搜索引擎的脚本，所以ip被google封掉的可能性不大。那就只能说明是我把google的ip封掉了！ 因为之前遭遇cc攻击，写过一个封禁的脚本，自动把访问量超过一定限制的ip用iptables block 掉。</p>
<p>5. 我把 iptables 暂时停用，然后再用google网站管理员工具模拟一下googlebot，神奇的事情发生了，居然立即显示了成功状态和抓取结果。赶紧再查一下日志，发现google是通过 203.208.60.x 这个ip来抓取的。赶紧再去看一下封禁记录，发现这个c段的四五个ip都是在4月份被我的脚本自动封掉的:(  记得我当时还是分析了3个月的googlebot抓取的频率，才设定的每分钟访问动态页面超过150个被视为攻击，脚本跑了一年多，也没见google或者baidu的抓取异常。。。 莫非今年4月份的时候google修改了抓取频率了？</p>
<p>6. 回想起当年写这个脚本的原因，就是在08年底的时候遭遇了恐怖的cc攻击，后来写了脚本防范，为了防止误杀搜索引擎，所以加了 grep -i  &#8216;xxxx|xxxx&#8217; 的管道，结果这个攻击的人更过分，直接把 refferr 写成和 google bot 一样的方式，几千国外代理一起上来！然后我又改算法。。。。</p>
<p>结果搞清楚了，也可以避免问题的发生了，在这里要提醒做站的朋友，google webmasters 是个好东西，一定要定期查看。写自动封禁的脚本，一定要考虑到搜索引擎误伤问题，千万别犯我一样的错误。</p>
<p><a href="http://ifaint.com/wp-content/uploads/2010/08/屏幕快照-2010-08-08-上午11.28.46.png"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ifaint.com/2010/08/google_webmasters/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>mac下安装memcache，与MAMP的php一起工作</title>
		<link>http://ifaint.com/2010/08/mac_memcache_mamp_php/</link>
		<comments>http://ifaint.com/2010/08/mac_memcache_mamp_php/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 11:07:55 +0000</pubDate>
		<dc:creator>chy</dc:creator>
				<category><![CDATA[系统]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mamp]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://ifaint.com/?p=50</guid>
		<description><![CDATA[很久之前在公司电脑上配过一次，周末写点儿小程序用到memcache，又重新查一遍资料，呵呵。 这次做个备忘。
1. 因为需要编译，所以需要gcc环境，不过好在我已经装过xcode了，跳过此步。
2.下载memcache的源码，然后编译配置。。。。 听着麻烦吧，不过有人早就帮忙写好了脚本，从下载到安装完成，执行一下就ok：） 脚本可以从这里下载。 只需要 chmod +x 一下，然后执行就好了。
3. 安装php-memcache扩展, 也简单，下载一个 PHP  5.2.5 (Intel) memcache.so 拷到 /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-[date] ,   这个 [date]会根据你装的 MAMP 版本不同而不同，不用担心，你一定找得到。
4. 配置 php-memcache 扩展，打开php配置文件： /Applications/MAMP/conf/php5/php.ini 增加一行 extension=memcache.so 就ok了。加哪儿？ 找到类似的行就行了，比如 php-mysql.so 之类的。
5. 重启 MAMP 就ok了， 用 phpinfo() 试一下，应该能看到 memcache 了。
6. 还没完，memcache 装好了，还没启动呢，我是这么启动的 memcached -m 32 -p 11211 -d 。 如果需要可以把这句加到 MAMP 的 startApache.sh 里，这样就可以自动启动了。 [...]]]></description>
			<content:encoded><![CDATA[<p>很久之前在公司电脑上配过一次，周末写点儿小程序用到memcache，又重新查一遍资料，呵呵。 这次做个备忘。</p>
<p>1. 因为需要编译，所以需要gcc环境，不过好在我已经装过<a href="http://developer.apple.com/tools/download/" target="_blank">xcode</a>了，跳过此步。</p>
<p>2.下载memcache的源码，然后编译配置。。。。 听着麻烦吧，不过有人早就帮忙写好了脚本，从下载到安装完成，执行一下就ok：） 脚本可以从<a href="http://topfunky.net/svn/shovel/memcached/install-memcached.sh">这里</a>下载。 只需要 chmod +x 一下，然后执行就好了。</p>
<p>3. 安装php-memcache扩展, 也简单，下载一个 <a href="http://www.lullabot.com/sites/lullabot.com/files/memcache.so_.txt">PHP  5.2.5 (Intel) memcache.so</a> 拷到 /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-[date] ,   这个 [date]会根据你装的 MAMP 版本不同而不同，不用担心，你一定找得到。</p>
<p>4. 配置 php-memcache 扩展，打开php配置文件： /Applications/MAMP/conf/php5/php.ini 增加一行 extension=memcache.so 就ok了。加哪儿？ 找到类似的行就行了，比如 php-mysql.so 之类的。</p>
<p>5. 重启 MAMP 就ok了， 用 phpinfo() 试一下，应该能看到 memcache 了。</p>
<p>6. 还没完，memcache 装好了，还没启动呢，我是这么启动的 memcached -m 32 -p 11211 -d 。 如果需要可以把这句加到 MAMP 的 startApache.sh 里，这样就可以自动启动了。 当然别忘了在 stopApache.sh 里也加一句 killall memcached.</p>
<p>就这些了：）喝水不忘挖井人，以上主要是从<a href="http://www.lullabot.com/articles/setup-memcached-mamp-sandbox-environment">这篇文章</a>学习的。</p>
]]></content:encoded>
			<wfw:commentRss>http://ifaint.com/2010/08/mac_memcache_mamp_php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我晕！居然是系统时间惹的祸！</title>
		<link>http://ifaint.com/2009/08/cased_by_systime/</link>
		<comments>http://ifaint.com/2009/08/cased_by_systime/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 15:38:48 +0000</pubDate>
		<dc:creator>chy</dc:creator>
				<category><![CDATA[系统]]></category>

		<guid isPermaLink="false">http://ifaint.com/?p=18</guid>
		<description><![CDATA[上个月web源服务器硬盘坏了一块儿，于是启用了备用机，结果发现源站的流量比之前要高，很奇怪。   我现在是前端 linux,squid 后端 windows,iis.
本来以为是备用服务器的系统有些问题，因为之前跑过一些乱七八糟的应用。昨天修好了服务器，换上线，结果发现问题依旧，流量还是有些高，我晕！
今天终于找到了原因，在缓存服务器上发现，缓存的命中率低了一半，我晕，咋回事儿。看看日志才知道，凡是缓存设置小于5分钟的页面全都是 &#8220;TCP_REFRESH_MODIFIED&#8221; 状态，我用的是 squid3，之前的版本应该是叫 “TCP_REFRESH_MISS” 。这就很显然了，squid根本没起作用，每次用户访问都去源站取数据去了，难怪源站流量会大。仔细检查过之后才发现，squid服务器和iis服务器之间的时间差了6分钟，也就是说源站的页面被缓存下来的时候就就被认为是过期缓存了，我晕！
把两台机器的系统时间都和标准时间同步一下，问题解决！
]]></description>
			<content:encoded><![CDATA[<p>上个月web源服务器硬盘坏了一块儿，于是启用了备用机，结果发现源站的流量比之前要高，很奇怪。   我现在是前端 linux,squid 后端 windows,iis.</p>
<p>本来以为是备用服务器的系统有些问题，因为之前跑过一些乱七八糟的应用。昨天修好了服务器，换上线，结果发现问题依旧，流量还是有些高，我晕！</p>
<p>今天终于找到了原因，在缓存服务器上发现，缓存的命中率低了一半，我晕，咋回事儿。看看日志才知道，凡是缓存设置小于5分钟的页面全都是 &#8220;TCP_REFRESH_MODIFIED&#8221; 状态，我用的是 squid3，之前的版本应该是叫 “TCP_REFRESH_MISS” 。这就很显然了，squid根本没起作用，每次用户访问都去源站取数据去了，难怪源站流量会大。仔细检查过之后才发现，squid服务器和iis服务器之间的时间差了6分钟，也就是说源站的页面被缓存下来的时候就就被认为是过期缓存了，我晕！</p>
<p>把两台机器的系统时间都和标准时间同步一下，问题解决！</p>
]]></content:encoded>
			<wfw:commentRss>http://ifaint.com/2009/08/cased_by_systime/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

