上线网站后cpu一直占满,请教性能问题
sbicrgw
由 sbicrgw
发布于 2014年06月04日
无人欣赏。
之前我们做的都是企业信息管理项目,对互联网项目没有经验,今年开始创业做比特币交易平台之类的项目,因为受到攻击,所以遇到了些困难,各种攻击不断,中国互联网太乱了吧!现在有些疑惑,希望论坛大神帮忙解答一下:
- 我查看网站的连接数在300个的时候cpu就100%,网站就卡死了。我们是用tomcat部署的,请问300个连接数是怎么样的概念,还是我们程序性能也太差了?(我们用的服务器是阿里云8核16G内存的)
- 因为我们确实没有高访问网站的运营经验,请教一下我们应该往哪方面做奴隶,或者有什么资料或者书籍方面推荐一下吗?
共45条回复
楼长
·
sbicrgw
回复于 2014年06月04日
我说的连接数300是在我们已经买了高防的cdn进行跳转以后的情况。用高防cdn之前,几秒钟网站就挂了!
2楼
·
玉楼
回复于 2014年06月04日
实在没法回答你的问题。CPU满很大可能是你程序写的有问题。高访问网站你要说出来希望有多高,300个连接是怎么看的?受到什么攻击了?synflood?
3楼
·
淮左青衣
回复于 2014年06月04日
- 你的所有请求直接进入tomcat?如果是这样的话,前端最好加一个nginx之类的服务器做反向代理,为静态资源和请求加上cache,不过看来你的静态资源已经上了cdn,那就给部分没有实时性要求的请求加上cahce吧。tomcat直接处理外网300多个连接,其实没有必要的。
- 这东西不是一两本书能教你的,在你城市里头找个熟悉互联网业务的人,请人吃几顿饭帮你看看吧。
- 我觉得你们是不是需要一个懂运维的人?
4楼
·
Lamb
回复于 2014年06月04日
先查看cpu被什么耗费了,有线程挂起吗?
5楼
·
youxiachai
回复于 2014年06月04日
你要找会攻击的人帮你优化才行.....
300连接...如果是一直占着的话....要么有很多很多人访问..要么就是人家在攻击你了..
6楼
·
JoeyYin
回复于 2014年06月04日
好吧,我很闲。今天来帮Tony老师撑场子。
服务器上去跑命令,看一下ESTABLISHED的连接有多少。 netstat -antp
如果连接过多不正常,那就是一次四层的攻击,也就是所有ip都是真实的。写个shell:
#!/bin/sh
do
for i in `netstat -an | grep -i ':80 '|grep 'EST' | awk '{print 5ドル}' | cut -d : -f 1 | sort | uniq -c | awk '{if(1ドル > 50) {print 2ドル}}'`
echo $i
echo $i >> /tmp/banip
/sbin/iptables -A INPUT -p tcp -j DROP -s $i
done
定时跑,5分钟一次。差不多就好了。
7楼
·
sbicrgw
回复于 2014年06月04日
- 连接数是通过netstat -na | grep ESTAB | grep 80 | wc -l这个命令查看的,这个数量是可以代表并发量吗?
- 交易平台就几个页面,基本都是实时性非常高的,所以nginx是没用了,高防cdn只是用来挡攻击用的。
- 我看到cpu都是tomcat占用的,有其他办法更新的查看是tomcat那个算法导致的吗?
8楼
·
sclzcq
回复于 2014年06月04日
可以看下每个线程的cpu占用情况
9楼
·
sbicrgw
回复于 2014年06月04日
还有我最想了解的是300个连接数是什么概念?完全没有做负载均衡什么的情况下,内存暂用这么高是不是程序的问题更大?还是300已经是不小的数字了?
10楼
·
forzaJuve
回复于 2014年06月04日
有可能是某个线程太吃cpu了.....我们以前有个做法就是写个脚本....监控 当某个进程占用cpu达到50% 就kill屌他
本帖有45个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。