svn :xxx has no ancestry information 解决一例
svn
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! |
svn
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! |
转自: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。
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
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
虾米是一个很好的听歌网站他的android下客户端也可以下mp3,但不爽的是,他没有存成mp3格式,估计他只想他自带的播放软件来播放,但目前他的播放软件不能跳帧,有点不爽,
最重要的是,重装后离线看不到这些歌了,但mp3还在的,
用如下代码在终端下进入目录执行如下
for file in *;do mv $file ${file%.*}.bak;done
搞定,就可以在cm7锁屏下换歌了
1.清除cached掉的内存:
echo 3 > /proc/sys/vm/drop_caches
测试一下,看看如何
1.最好用IE6,目前用的Loadrunner 9.1 ~ 9.5 用IE6会比较好些,IE7~IE9不一定能弹的出来
在IE6中关掉他,参考这里:http://bbs.51testing.com/viewthread.php?tid=138528
3.license security violation.Operation is not allowed
的问题,记得看这里:
4.
大流量互动网站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截图
2.系统负载截图