2. 也要看网站具体业务逻辑复杂度,可以先在当前服务器上压测下
如果就将就当前的服务器的话,就在前端限制下流量,损失部分用户总比网站直接挂了要好
要买好的机器先分析下系统瓶颈,哪里差了再去补哪里
不过多买几台机器做下负载均衡可能还实惠方便点,配置也容易,学生机也便宜.
3.
@上善若水,之前确实有这想法,不过去阿里云看了下,也不便宜。
@石头会飞翔,
这点倒是提醒了我,身边这么多童鞋,趁着还是学生确实应该可以做下负载均衡。不过这一点到又有 @上善若水,提到的数据库瓶颈的问题。到时候如果是负载均衡,真要考虑下云数据库。
感谢两位
红米Note7 高配版(黑色)
5.
你要搞清楚性能瓶颈在哪里,是CPU、网络还是磁盘IO。
6.
@老虎会游泳,手里的服务器存在这三个瓶颈
。不过在我刚刚购买了云数据库后,情况得到缓解,服务器负载只有1-3左右。【之前30以上是常态】,本来继续弄Nginx负载均衡的,但是遇到点麻烦。先将就这样弄算了。
的确像@上善若水,说的,MySQL看了的确很占内存和IO
红米Note7 高配版(黑色)
7.
@无道,你用的什么程序?如果是博客之类的搞个memcached就能减轻很多数据库压力。
8.
@老虎会游泳,自己使用Laravel写的程序,从数据库检索服务的。目前缓存已使用redis
红米Note7 高配版(黑色)
9.
@无道,你是不是索引没做好
开慢日志看一下。
索引完备的情况下,除非一直插入、修改,否则MySQL占用的资源是很少的。
常用查询涉及的字段都应该建立复合索引,避免MySQL全表扫描。
比如hu60_bbs_topic_meta的索引
也可以用EXPLAIN select * from xxx where xxxxxx
分析索引的覆盖情况,就是EXPLAIN
接你常用的查询语句。如果得到Using filesort
(文件排序),说明索引没有覆盖到,需要全表扫描,会很慢。
10.
顺便一提,机器性能差的时候用apache2mod方式运行PHP效果更好,因为nginx采用的fastcgi模式在并发高的时候经常卡住,采用php-fpm也不能改善(php-fpm也是fastcgi),而且进程上限非常不好调整。apache2mod的问题就少得多,默认配置就能支撑足够数量的并发。此外,apache2mod没有进程间通信开销。
11.
@老虎会游泳,修改插入算是较为频繁,因为要修改某条数据的状态为失效。要插入新数据。
其实搜索服务我是已经是用xunsearch建立了索引,用xunsearch搜索的,而需要从数据库中查询的是同属某个tid的资源,以及查询次数最多的几条数据。
关于apache还是nginx,我先是用的apache,但是当时用户稍微多了点的时候还是很卡,出现打不开网站的情况。当时换了nginx后此状况得到改善。所以,不知道该使用哪种服务器。
红米Note7 高配版(黑色)
12.
总的来说,今天换了阿里云的云数据库,情况还是得到不少改善。最起码现在服务器负载一直在1-3,网站只是加载慢了,但能打开。
只能说1h2g的服务器性能也确实就那样。
当然,也有自己写的代码的锅吧。
红米Note7 高配版(黑色)
13.
hu60.cn,阿里云1核2G,日PV(22日):68208(可能大部分来自搜索引擎),日IP:4488。
Web服务器和MySQL数据库都运行在这台服务器上,Web服务器采用Debian软件源提供的Apache2.4和PHP7(采用apache2mod方式运行PHP,默认配置,安装方法:apt install apache2 phpmyadmin
,会自动配置好apache2和PHP)。
MySQL也是来自软件源,apt install mariadb-server
,没有做任何性能调整。
论坛搜索采用memcached,除此之外,没有其他缓存机制。
带宽是5Mbps的固定小水管。
目前CPU和IO都是轻载,个人感觉访问非常流畅,一直都可用。
14.
@无道,如上所述,就我使用1h2g的服务器来看,完全能承担你的访问量。所以,如果你把MySQL移走能产生这么大的性能改善,那你确实得看看你的表索引问题了。你可以把你的数据库结构(包括索引)贴出来看看吗?
如果不是表索引的问题,那就是PHP-FPM(或者说FastCGI)在1h2g服务器上表现太烂了。PHP-FPM更适合那种一次能启动成千上万进程的部署,不太适合单核少内存实例。
15.
@老虎会游泳,不能比,不能比,看来有待优化。

不过我得证明我写的代码不是很差(因为也没什么涉及到性能的,就是增删改查):
如上图所示的只是51la统计的流量。(不过得说明的是我同时安装了百度统计和51啦,每天的统计51la的量都比百度统计少800-1000ip左右)
另外,对外提供了油猴插件,每天最起码有3000左右的请求。
老虎你的数据是从服务器上用代码自己统计的吗?
红米Note7 高配版(黑色)
16.
@无道,如果查询语句很简单,但性能却不好,那首先想到的就是索引没建到位。阿里云RDS支持性能分析,你可以去看看慢日志,看看哪些查询开销较高,然后针对性的建立索引。
我没有统计代码,我刚刚临时抓取apache日志看的。
18.
我就是用脚本简单计算了一下:
cat access.log | grep 'Nov 22' | grep 'hu60.cn' | awk '{print $10}' | awk -F':' '{print $1}' | sort | uniq | wc -l
cat access.log | grep 'Nov 22' 得到昨天的日志 | grep 'hu60.cn' 得到hu60.cn的日志 | awk '{print $10}' 得到IP:端口部分 | awk -F':' '{print $1}' 得到IP部分 | sort 排序 | uniq 去重,需要先排序才能去重 | wc -l 统计行数
你可以根据Nginx日志的格式更改,主要是$10
,表示按空格分隔的第十个部分是IP端口。
19.
@老虎会游泳,嗯嗯,感谢老虎🐯
红米Note7 高配版(黑色)