表现:按住F5刷新网页,不到20秒,网站直接502了。
vps配置:单核E5,1G内存(512MB内存同样出现此状况),20G硬盘。digitalocean家的。
系统环境:centos6.5 x32
软件环境:lnmp一键安装包
网站程序:wordpress
刷新时,查看VPS状态,内存一直剩余有三分之一,cpu占用率93%-99%之间,偶尔逼近100%但没到达过。
从网上搜了一堆关于502的解决方式,配置调整后依然无效。。。。
请大神指教,谢谢各位。
1
my101du 2015-02-27 11:21:47 +08:00 1
是军哥的那个lnmp一键安装包么?
我们现在也在用,以前常502,后来请了一位专门运维的专业人士来检查,调整后有改善。 加大 php-fpm 同时可运行进程数 + 扩大到更大内存 + 设置php脚本超时时间 + mysql加大cache + CDN缓存静态资源 你说的 CPU占用率90以上,十有八九是某个php脚本运行了耗时操作,例如我司之前遇到的,当GFW很强或海底光缆抽风的时候,QQ互联插件等需要访问国内服务器的脚本,会造成502,只能强制设置每个php脚本运行30后就超时断开。 |
2
mengskysama 2015-02-27 11:43:36 +08:00
肯定是这样啊,wp太重了。
|
3
Puteulanus 2015-02-27 11:52:22 +08:00
|
4
zts1993 2015-02-27 11:52:30 +08:00 via Android
目测wordpress
|
5
esile 2015-02-27 12:47:06 +08:00 via iPhone
wordpress需要安装cache插件。lnmp默认装完需要修改/etc/my.cnf增加连接数
|
6
bossmaster OP @my101du 是的。请问你说的“调整后有改善”是不再出现了还是刷新时间变长才会出现啊?
你说的这几种方式:加大 php-fpm 同时可运行进程数(已加) + 扩大到更大内存(从512MB升级1G) + 设置php脚本超时时间(已设置) + mysql加大cache (已加)+ CDN缓存静态资源(未处理),因为没效,所以发帖来问了。我没有使用国内的第三方服务。感谢。 @mengskysama 一定会这样吗?我在老鹰主机最低配上搭的wordpress也不会这样啊。。。。 @Puteulanus 这个帖子之前看过了,回复里涉及的参数调整都尝试过,问题仍然没有解决。而且我测试了多个其它人用VPS建的wordpress站,F5刷新一样502,囧啊 @esile 谢谢,我先试试看 |
7
Parabola 2015-02-27 14:19:25 +08:00
果然啊,hhvm的没有,军哥的1.1会的,加了静态化和cdn的不会
|
8
mengskysama 2015-02-27 14:25:16 +08:00
@bossmaster 弄不死那只是压力不够
虚拟主机不见得比你VPS配置差的,但是你长期占用大量资源肯定给你停了 再就是可能IP并发上面可能限得比较死 我刚刚测试了老鹰一样会跪 你可以用这个压力测试一下 里面三个变量赋值,就行了。 g_lst_target = js['target'] g_target_host = js['host'] g_thread = js['thread'] https://github.com/mengskysama/ProxyDDoS |
9
lxx1 2015-02-27 15:16:33 +08:00 via Android
加缓存就好
|
10
bossmaster OP @Parabola 感谢,最近准备测试一下hhvm,国内的cdn服务信不过啊,各种状况。。。
@mengskysama 测试了一下,可能压力不够,只是打开页面变的巨慢,没有直接502,比我的vps靠谱多了 @lxx1 请问你说的加缓存,是给什么加缓存啊? |
11
mengskysama 2015-02-27 15:40:16 +08:00
|
12
kn007 2015-02-27 15:53:29 +08:00
|
13
kn007 2015-02-27 15:56:20 +08:00
@bossmaster 其实1楼说的没错,你可以看下实际导致502的原因,看php或nginx的log。
你可以考虑使用缓存,比如mc,对db和obj做缓存。甚至于页面。 你可以看看我的,随便刷新。。。 http://kn007.net |
14
mengskysama 2015-02-27 17:09:24 +08:00
@kn007 好硬
|
15
bossmaster OP @mengskysama 是的,准备限制下单IP并发,主要是希望VPS能支撑常规的F5刷新产生的并发。已狠下心把延迟时间调整为之前的3倍,现在刷新不直接502了,换成直接卡半天。。。
@kn007 老熟人,经常去你博客看你乱喷,加过MC和eAccelerator,也是很无语。为毛你的VPS文章没有一篇比较系统一点的啊?关于VPS配置能不能写篇系统一些详细一些的,比如可以从LNMP环境的搭建开始,然后做过的优化,防CC之类的,直到你安心写文不折腾为止,一次写不完,开个系列也行啊,就像你的开博三年历程一样。太缺这样的干货了。。。 |
16
kn007 2015-02-27 18:00:05 +08:00
@mengskysama 完全没有负载。。。
|
17
kn007 2015-02-27 18:12:07 +08:00 1
@bossmaster 额,你是?。。多谢关照。
简单怎么防DDOS和CC,还有其他做缓存,博客以后会慢慢发表吧。希望到时能有所帮助。 怎么说呢,我之前挺有时间和兴趣,也有人问我问题,也乐意回答。然后现在有几个朋友已经通过给别人维护赚钱了。。。我有点羡慕,他们最少都是100/次收的,大发就是几百块收的,他一直教导我,对小白要宰。。。据大发说,他现在手上帮人搞的阿里云都不少了。 你也知道博客这么多年一直没有投放广告其他的。一直没有收益,只有支出。我也想看看能不能学习朋友一样,帮人维护弄点外快,不过我又没定主意,很矛盾的心理。 感觉博客现在没啥人气。发这些也不一定有人看。很头疼。我不像别人会做主题,给博客带来流量,我会的只是php和整个服务器的调优,而css和js就是简单基于一些框架修改。 到现在一直没定位我的博客,最开始想抒发情感,慢慢又放折腾的文章。但是这么多年了。我在vps的支出都快超过1W,也是各种坎坷走过。我发了历时3年的文章,其实是很痛苦的,如果真的人有人看,有人懂,我都可以不用发这种文章的。我也不知道自己能不能坚持,写这些历程文章的目的就是为了鞭策自己,继续写下去。不过还是很迷茫。 不好意思,说的有点乱,想起博客,心情复杂。只是希望自己走的路是对的。 |
18
mengskysama 2015-02-27 18:42:00 +08:00
|
19
kn007 2015-02-27 18:49:14 +08:00
@mengskysama 会不会是因为我重启了mysql
|
20
kn007 2015-02-27 18:51:06 +08:00
@mengskysama search确实是个缺口。我看到有负载了0.64 0.90 0.92
|
21
mengskysama 2015-02-27 19:33:58 +08:00 1
|
22
kn007 2015-02-27 19:35:55 +08:00
@mengskysama 搜索我也不知道怎么优化了,mysql已经是最快了。除非禁用内部搜索,使用外部搜索了。
|
23
mengskysama 2015-02-27 19:39:00 +08:00
@kn007 如果是数据库瓶颈。可以考虑sphinx,博客这种微量的数据,连分词器都不需要。绝对比mysql模糊搜索快很多。
|
24
kn007 2015-02-27 20:06:41 +08:00
@mengskysama sphinx不懂啊。。。主要是
|
25
402645707 2015-02-27 20:16:21 +08:00 via Android
搬瓦工一直502。。
|
26
Moker 2015-02-27 20:22:49 +08:00
@mengskysama 你那个ss服务也是通过这种方法限制的么
|
27
mengskysama 2015-02-27 20:31:28 +08:00
|
28
linkupmylife 2015-02-27 20:46:31 +08:00
SYN FLOOD不502才怪。
|
29
O21 2015-02-27 20:46:51 +08:00
网址发来我也想试试。、。。
|
30
Janselz 2015-02-27 22:10:06 +08:00
WP太慢太重
|
31
bossmaster OP @kn007 我一直是匿名潜水,很少冒泡,你发现不了我。另外,自己的博客内容都是和生活相关的,对一些人来说,可能比较让人不高兴,就没有留过博客地址。我以为大发就是卖主题,做设计,接项目,没想到这货还接运维的活。
其实你的很多文章都很有用啊,没接触过相关内容的人很多,总有一些人会用到。我个人觉得不足的就是,你没有系统的整理归纳一下。别人无法系统的了解相关内容,总是遇到某个问题搜索一下,然后找到了,解决具体的某个问题,太零散了。如果是系统性的,哪怕是入门类的,可以用到的人就多了,浏览量也会很高。另外,文章涉及多个方面不一定不好,你看编程随想,心理学、历史、政治、开发、招聘、读书等等等等,谈的很多,而且还是一个墙外托管在谷歌上的博客,一堵墙挡了多少人的路,浏览量依然巨高。 赚钱的方式有很多,工作之外的赚钱,也看因缘际会。你想做的话,可以先做起来,无论赚多少。走着走着,路就出来了。其实,由于博客的缘故,你现在已经储备很多东西了,就差走起来。或许你已经在走着了。 @402645707 我的搬瓦工也是502,和DO的一样,设置延迟之后就不502了,不过也和DO一样,狂刷的时候反应巨慢。 @linkupmylife 不停的F5刷新也算SYN FLOOD吗? |
32
kn007 2015-02-27 22:41:20 +08:00
@mengskysama 我回头试试
|
33
kn007 2015-02-27 22:44:25 +08:00 1
@bossmaster 刷新,这是很简单的CC,甚至CC都不算。502说明你的参数根本没有调优,与你的VPS根本没有结合,而是照抄。你应该去了解你的vps,让他与你的软件更相配。
大发也算是帮了我一些忙,我帮他是应该的。 我也不知道怎么走。往后我会将一些方法分享出来,但不要过于期待。。我现在比较忙,比较拖拉。 其实什么类型博客,都无所谓啦,来者是客。 至于我博客的出路,我现在不想想太多了。 |
34
kn007 2015-02-27 22:51:03 +08:00
@bossmaster 我曾经也是从512M的VPS走过来的。要知道低配置的vps更需要调优。挑优后就跟我现在差不多了。还有如果你用了军哥lnmp的一键安装包,我建议你用0.9的版本,然后更新php、mysql、nginx。我的是自己写一键安装包,涉及的组件比较多。
|
35
extreme 2015-02-27 23:24:23 +08:00
PHP嘛,正常现象。
我用Nginx FastCGI Cache & Varnish解决的。 现在Webkaka的压力测试,强度最大也无问题。 |
36
bossmaster OP @kn007 “502说明你的参数根本没有调优,与你的VPS根本没有结合,而是照抄。你应该去了解你的vps,让他与你的软件更相配。”一针见血,说的太对了。vps用了这么长时间,基本上网站跑起来后,我就没怎么管过它,也是无意间发现刷新502的问题,才发现很多基本的设置优化都没做。每天想学的东西很多,感觉时间一直不够用。
明天按你的意见,换成0.9版再试试,其实一直想全新安装配置,等忙完了这段时间,好好的理一理。 |
37
bossmaster OP @extreme 感谢,我试试看
|
38
thinkxen 2015-02-27 23:39:39 +08:00 via Android
|
39
kn007 2015-02-27 23:42:03 +08:00
@extreme 哈,你这不是双CACHE了。不过你可以利用Varnish可以防护CC,Nginx负责Cache也不错。
@bossmaster 你也可以考虑这个架构,不过需要多一点内存,1G也可以部署,大并发,varnish会自杀就是了。 我目前就是Varnish+Nginx+PHP+Mysql+Memcache+Redis这种。varnish前端,负责规则反代+cache,代理nginx,nginx仅cache gravatar头像和google favicon,还有代理php。php与memcache结合处理日常运作和相对有过期时间的数据库缓存,或其他数据缓存。MYSQL和REDIS处理永久化数据,REDIS偏向KEY和CACHE。MYSQL纯DATEBASE。 |
41
mawenjian 2015-02-27 23:59:14 +08:00
Web服务器调优倒在其次,最简单有效的办法是用WP插件做缓存(比如W3 Total Cache),或者将页面静态化。做到了这一步,基本上就不怕F5持续刷新了。
如果要求严苛的话,再考虑采用内存级缓存、Web服务器和数据库服务器调优之类的问题。不过一般小站点的话,加个缓存完全足够了吧。 |
42
ztgamer 2015-02-28 04:05:54 +08:00
CPU占用过高了
|
43
typcn 2015-02-28 05:13:09 +08:00 via iPhone
|
45
enener 2015-02-28 07:22:14 +08:00 via Android
环境没配好,我前阵子也用的一键安装包,也出现过类似问题。目前换了AMH几天了,没出现过类似问题。。。
|
46
zjgood 2015-02-28 07:24:25 +08:00 via Android
@kn007 我在想高考完了把以前写的Python博客翻出来改造一番,把MySQL废弃,完全改换为redis ,或者直接把所有post 静态存储成json ,页面通过JavaScript来动态处理。。。
|
47
molinxx 2015-02-28 08:04:15 +08:00 via iPhone
ngx_req_limit
|
49
kn007 2015-02-28 11:13:19 +08:00
@mengskysama 你怎么批量生成search/*的?给个config.txt吧。我直接改py,target,写的好长。。。
|
50
Tianpu 2015-02-28 11:20:37 +08:00
@my101du @mengskysama @Puteulanus @zts1993 @esile @bossmaster @Parabola @lxx1 @kn007 @402645707 @Moker @linkupmylife @O21 @Janselz @extreme @thinkxen @mawenjian @ztgamer @typcn @zjgood @enener @molinxx
https://www.v2ex.com/t/173440#reply1 var d=[]; $('.dark').each(function (index, el){var a = $(el); if (a.attr('href').slice(1, 7) === 'member'){d.push('@' + a.text())}}); $('#reply_content').val($.unique(d).join(' ')) |
52
mengskysama 2015-02-28 12:30:42 +08:00
@kn007
{ "target": "http://kn007.net/search/", "host": "", "thread": 100 } r = s.get(target, timeout=2, headers=headers, proxies=proxies) 改 import random r = s.get(target+str(random.randint(0,9999999)), timeout=2, headers=headers, proxies=proxies) 这样? |
53
zhujiceping 2015-02-28 12:37:06 +08:00
给wordpress安装个cache插件比如quick-cache,然后你自己试试F5会发现基本没反应。有条件的话再套个CDN就更加好了!
我的博客一天让人刷40万PV完全感觉不到压力! |
54
extreme 2015-02-28 12:54:59 +08:00
@zjgood Varnish我觉得效果最好,以前用mod_php,17ce测试,物理内存占用会一下子涨几乎1 Gbytes,后来用了Varnish,同样的测试,只有十多Mbytes的物理内存占用变化。
Nginx缓存没Varnish效果好,不过一起用可以弥补双方的缺点。 至于什么缺点我现在就很难说出来了,只知道效果非常好。 |
56
kn007 2015-02-28 13:28:05 +08:00
@mengskysama 原来如此
|
57
kn007 2015-02-28 13:32:20 +08:00
@mengskysama 我还以为你是定义config.txt。。。到时忘记利用python了。对python不熟,我刚用php形成10000条随机数据,然后丢进去。。。
|
58
notnumb 2015-02-28 13:42:59 +08:00
F5多久都可以,只要有cache或者内存,我自己静态blog就是放到内存里面
我的VPS是openvz 只有128M |
59
msg7086 2015-02-28 15:37:13 +08:00
Wordpress裸着用是很慢的。
|
60
kimmykuang 2015-02-28 15:52:05 +08:00
@kn007 你的blog右侧Classified Categories一栏,鼠标滑过时子菜单出来的姿势很奇异
|
61
cnbeining 2015-02-28 15:57:16 +08:00
|
62
kn007 2015-02-28 16:06:51 +08:00
@kimmykuang 谢谢,是有点,已有朋友反映。我晚些看怎么改好
|
63
ChenYounG 2015-02-28 16:29:20 +08:00
哈哈,我之前也是这样,只要涉及WP涉及数据库操作,PHP进程就会100%占用CPU。
今天把my.cnf里的log.bin=mysql.bin注释掉之后,感觉快了很多,CPU占用也不会出现瞬间飙到100% 我是一个小白,我也不知道上面的操作是否有关,也许是凑巧,哈哈,另外我有装了super cache |
65
bossmaster OP @kn007 整体更新成lempa+Memcache,已经完美解决了这个问题。感谢你的方案,有空再试试你的部署方案,准备针对高流量高并发进行优化。
@mawenjian 正解。wp静态化缓存做好,比优化服务器来的更直接。感谢。 @ztgamer 是的,突发流量会导致cpu占用率飙到99%,然后直接爆掉。 @typcn 是的,不过wp整体上比较成熟,扩展性比较强,定制起来也比较容易,所以还是用它啦。 @enener 面板使用起来确实很方便,我以前也是用面版,只是附带的BUG容易导致服务器被黑,所以只能让服务器安装的软件做到最少。 @zhujiceping 哈哈,正解。 @notnumb 已经按照你的意见,缓存到内存里,速度没的说,感谢。 @msg7086 是的。。。 @cybelive 是super cache起作用了。。。 |
66
kn007 2015-03-04 20:41:36 +08:00
@bossmaster 我好奇你的lempa是什么lamp+e什么?eA?还是你指emlog。反正你只需要记住一点,尽量让客户端优先读到位于内存的Cache
|
67
xiahuan 2015-03-07 11:11:42 +08:00
可以试试 www.ltanmp.com 这个据作者说是用于生产环境的 调优了内核与一些常用软件参数。
|
68
bossmaster OP |
69
kn007 2015-03-09 10:26:16 +08:00
|