百度SEO技术

您当前的位置: 首页> 百度SEO技术> 网站高并发优化综述

网站高并发优化综述

发表日期:2020-04-29 08:30:00

另外,其他搜索引擎和用户链接的日流量都在1W以上,由于公司是一个配置相对较低的单服务器,每天还需要将数据存储到文件中,而且数据库之前一直处于崩溃状态,所以通过以下优化思路进行优化,并取得了良好的效果进步很大。希望广大朋友能参考一下。如果没有足够的理由指出更好的方法。让我们一起进步吧!

一、你的网站和项目有多少流量和并发性?

当项目用户数达到一定规模时,网站上经常出现502个坏网关(nginx)、连接超时(APACHE)、MySQL拒绝连接等问题。此时,大家普遍了解到,该网站访问量大,请求量大,所以服务器不堪重负,已经下班了。此时,快的解决方案是重新启动Apache、nginx或mysql。当然,这不能解决根本原因,只是暂时的。

所以,首先,你应该知道你的网站有多少流量?每秒的流量有多大?CPU使用率的峰值是多少?对于这个问题,监控软件是。有很多这样的监控软件,比如cacti(一个全图形化的交通监控工具)、ZABBIX(它支持对各种数据的监控,可以扩展监控模块,集成报警功能,非常强大和庞大!)因此,步是在所有服务器上安装监控客户端,比如cacti的SNMP、ZABBIX的ZABBIX[u client],然后构建自己的监控服务器。然后静默收集一段时间的数据,可以是几天或一周。然后知道服务器的峰值是多少,平均值是多少,CPU使用率,内存使用率。这样,您可以首先知道服务器的状态。

如果服务器一直正常运行,但502经常出现一段时间,超时,CPU超高,排除了流量大增以外的原因,那么原因可能是程序卡住或服务器硬件故障。排除硬件故障后,先查询mysql、PHP、nginx和Apache的错误日志、慢日志,并找到源文件和代码块。通常,新的功能在没有完成测试的情况下就上线了,这很容易造成这样的问题。

例如,我们的一个在线服务器已经在线一段时间了。在代码模块中将MySQL服务器地址改为其他机房的MySQL服务器。由于代码没有经过严格的测试,MySQL connect被直接用于重新连接。此功能上线后,服务器经常出现502,超时,CPU 90%。后来我们发现,由于其他机房的网络问题,MySQL连接速度太慢,导致大量MySQL连接卡在这里造成阻塞。另一个统计模块的文件获取内容也是同样的问题,因此在以后的开发中需要禁止使用文件获取内容。此外,MySQL connect还需要限制超***间。

如果程序没有问题,则需要从数据库或队列中查找原因。数据库中会出现很多问题,如SQL语句不经常优化导致的表锁、MySQL并发达到预设峰值、表崩溃、等待进程过多等。

经验告诉我们,队列和缓存是解决高并发性的有效的方法。例如,电子邮件发送。实际上,客户端不需要等待这种功能的完成,所以我们只需要将要发送的电子邮件地址和内容放在前端的队列中,后台程序就会慢慢地从队列中获取它们。队列有很多解决方案,如Memcache、redis等。

至于Memcache,我尝试在windows平台上用Memcache写一个队列。终效果并不理想。当循环得到或设置时,Memcache将显得非常慢,终命中率根本不高。Windows平台上的Redis由于pull的支持,经常在高并发性下进行重新分发。在*inux平台上,redis表现出了优异的性能和稳定性。目前,公司在线产品使用redis后已经非常稳定,所以redis是一个值得使用的法宝。

在并发性高、数据量大的情况下,需要按模块划分表和数据库。不要相信隔墙。分区很容易导致表崩溃。特别是在MyISAM引擎中,分区不仅在文件夹中生成一堆文件,而且由于打开的文件句柄过多,还可能导致各种MySQL错误。

根据情况选择不同的引擎或数据库软件。像MyISAM和InnoDB这样的引擎应该在不同的情况下使用。Mysiam适合于更多的查询和更少的插入。InnoDB适合于更多的写操作,更少的查询和事务支持。NoSQL也是一个值得尝试的产品。PHP对mongdb的支持相当好,操作非常方便。

具有高并发性的M/s存在延迟问题。临时解决方案是使用缓存。

带宽是非常宝贵和昂贵的。如果可能,必须使用CDN。速度将大大提高,动态程序服务器的稳定性也将得到保证。

嗯,这是近的一些经历。


上一篇: 如何优化和推广企业网站

下一篇: 如何优化网站到主页?我们应该注意什么

技巧精选

热门推荐

地址:浙江省杭州市余杭区联胜路10号 电话:0571-88730320 联系人:方经理

Copyright © 2015-2020 worui.net