看看想想记记
2011-04-25Tech

没有评论
2,036 views

svn :xxx has no ancestry information 解决一例

svn :x xx has no ancestry information

because we lost xxx/.svn directory

SO just

svn checkout  svn://xxxxxx/your project

if there was error, ignore it ….

svn update  svn://xxxxxx/your project   works!
2011-04-24Tech

没有评论
704 views

转:一例502bad gateway的排查

转自:http://drdr.nix-adm.org/?p=192

一例502bad gateway的排查
一个站点突然502了,重启php fastcgi进程依然很慢。

站点结构比较简单,一台WEB,一台DB。

排查这种完全无法访问的问题比较简单。

首先看负载,命令w,或用vmstat 1 5 看负载倾向,负载几乎没有,基本是fastcgi进程挂掉了,你可以通过 netstat -an|grep LISTEN来确认fastcgi在不在。

如果负载比较高,那多半是fastcgi被阻塞了,如果你是用socket方式连接的fastcgi,那直接netstat -an|grep sock就可以看到阻塞的队列有多长。

如果确认是阻塞了,那可以直奔php的slow_log了,如果你的fpm还没有配置这个选项,赶紧配置上吧, slow的时间基准设置为1秒。

在本例中,fastcgi就堵住了,查看slow log,发现都是mysql查询函数被阻塞了。

那mysql是如何能阻塞呢,本例mysql是与WEB是分离部署的,所以首先要排查网络原因,ping db,发现延迟居然到了100ms ,俩机器可是在同一个LAN内,那什么原因会造成延迟变大呢,流量,状态表,负载,都可能,首先应该检查的是流量。

俩机器分别执行sar -n DEV 1 10查看用于通信的内网流量使用情况,发现数据库这台机器流量使用了接近100M,使用ethtool 检查网卡,发现协商成100M了,但一般来说,纯数据库查询,跑满百M,也很不可思议,所以一定有其他原因。

tcpdump -nn -i eth1 port not 3306 看一下除了mysql外,内网还有承载其他业务分组么,发现几乎没有,那就确定是 mysqld 的原因了。

show processlist,发现队列不是很长,不过发现有一个用于replication(主从复制)的进程,问一下,果然复制是新加的,停掉丛库后,流量一下就下来了。

slow log对排查php被阻塞到站点挂掉的原因,绝对是最直接的方式。

另:Nginx 502错误的几种解决方法

http://www.houyanpeng.com/nginx-502%E9%94%99%E8%AF%AF%E7%9A%84%E5%87%A0%E7%A7%8D%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95.html

ginx 502 Bad Gateway错误是FastCGI有问题,造成NGINX 502错误的可能性比较多。将网上找到的一些和502 Bad Gateway错误有关的问题和排查方法列一下,先从FastCGI配置入手:

1.FastCGI进程是否已经启动

2.FastCGI worker进程数是否不够
运行 netstat -anpo | grep “php-cgi” | wc -l 判断是否接近FastCGI进程,接近配置文件中设置的数值,表明worker进程数设置太少
参见:http://blog.s135.com/post/361.htm

3.FastCGI执行时间过长
根据实际情况调高以下参数值
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

4.FastCGI Buffer不够
nginx和apache一样,有前端缓冲限制,可以调整缓冲参数
fastcgi_buffer_size 32k;
fastcgi_buffers 8 32k;
参见:http://www.hiadmin.com/nginx-502-gateway-error%E4%B8%80%E4%BE%8B/

5.Proxy Buffer不够
如果你用了Proxying,调整
proxy_buffer_size 16k;
proxy_buffers 4 16k;
参见:http://www.ruby-forum.com/topic/169040

6.https转发配置错误
正确的配置方法
server_name www.mydomain.com;
location /myproj/repos {
set $fixed_destination $http_destination;
if ( $http_destination ~* ^https(.*)$ )
{
set $fixed_destination http$1;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Destination $fixed_destination;
proxy_pass http://subversion_hosts;
}
参见:http://www.ruby-forum.com/topic/169040

当然,还要看你后端用的是哪种类型的FastCGI,我用过的有php-fpm,流量约为单台机器40万PV(动态页面), 现在基本上没有碰到502。

2011-04-24Tech

没有评论
1,451 views

nginx + php5.3.6

php 5.3.6和php 5.3.0有很多不一样!!!一般情况下nginx+php5.3.0安装可以参考这里

[1]/etc/init.d/php-fpm start
Starting php-fpm …………………………….. failed

原因:

php-fpm.conf没有配置好pid文件:

php-fpm.pid 目录必须是:/usr/local/webserver/php/var/run/php-fpm.pid
 
 cp /root/soft/php-5.3.6/sapi/fpm/init.d.php-fpm /etc/init.d/phpfpm
php.ini-production /usr/local/webserver/php/etc/php.ini

2. nginx +php5.3.6 502错误调试:
参考:善用 PHP-FPM 的 slow log 分析问题

来源:强力推荐502排查的日志

3.关于fastcgi , php-fpm :

http://hi.baidu.com/wga007/blog/item/8ab3173454f134a4d1a2d31a.html

http://syre.blogbus.com/logs/20092011.html

2011-04-22Tech

没有评论
615 views

[置顶]linux 命令备忘–持续更新中(2011/04/22)

1.MySQL创建用户
CREATE USER ‘devuser3′@’localhost’ IDENTIFIED BY ‘***’;
GRANT ALL PRIVILEGES ON * . * TO ‘devuser’@’1.1.1.’ IDENTIFIED BY ‘&4r0Oai7ehDa9871M’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

2.VI替换:来源:CU
举个例子啊:
将文件tihuan(假设此文本中字符a)中的所有字符a换成字符w,其命令为:
1。vi tihuan
2。按esc键
3。按shift+:
4。在:后输入 %s/a/w/g

2011-04-19杂杂杂

没有评论
868 views

andriod 给虾米下载mp3批量加扩展名

虾米是一个很好的听歌网站他的android下客户端也可以下mp3,但不爽的是,他没有存成mp3格式,估计他只想他自带的播放软件来播放,但目前他的播放软件不能跳帧,有点不爽,

最重要的是,重装后离线看不到这些歌了,但mp3还在的,

用如下代码在终端下进入目录执行如下

for file in *;do mv $file ${file%.*}.bak;done

搞定,就可以在cm7锁屏下换歌了

2011-04-18Tech

没有评论
542 views

linux命令备忘

1.清除cached掉的内存:
echo 3 > /proc/sys/vm/drop_caches

2011-04-18Tech

没有评论
705 views

利用chrome扩展来更新wordpress

测试一下,看看如何

Loadrunner 运行注意事项

1.最好用IE6,目前用的Loadrunner 9.1 ~ 9.5 用IE6会比较好些,IE7~IE9不一定能弹的出来

2.出现录制的时候,IE6不弹出来,有很大的原因是:

在IE6中关掉他,参考这里:http://bbs.51testing.com/viewthread.php?tid=138528

3.license security violation.Operation is not allowed
的问题,记得看这里

4.

对付大流量下php网站的优化-1-sessiont篇

大流量互动网站PHP肯定会用到session_start()

而如果按照PHP5.3默认的配置:

[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
;session.save_handler = files
 
;session.save_path = "/tmp"

在大流量测试下:loadRunner,1000人并发在线测试一个简单的程序

可以看到达到69W时,就会产生系统负载很大,TOP一分钟可以达到60多 (这远远超出系统的)

解决办法有二:

1.目录放入缓存,目录分级
参考:http://justcoding.iteye.com/blog/654639

2.使用memcached来存放 ,memcached安装:见这里

[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
;session.save_handler = files
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

这时去看

系统负载很低很低。。。。
大爱了。。

1.Loadrunner截图

Loadrunner测试

2.系统负载截图

系统负载top

3.memcached截图

返回顶部