当用户过多时,如何对服务器进行优化?
这个问题有点搞笑!!!
用户多,不代表你服务器访问量大,访问量大不一定你服务器压力大!我们换成专业点的问题,高并发下怎么优化能避免服务器压力过大?
1,整个架构:可采用分布式架构,利用微服务架构拆分服务部署在不同的服务节点,避免单节点宕机引起的服务不可用!
2,数据库:采用主从复制,读写分离,甚至是分库分表,表数据根据查询方式的不同采用不同的索引比如btree,hash,关键字段加索引,sql避免复合函数,避免组合排序等,避免使用非索引字段作为条件分组,排序等!减少交互次数,一定不要用select!
3,加缓存:使用诸如memcache,redis,ehcache等缓存数据库定义表,结果表等等,数据库的中间数据放缓存,避免多次访问修改表数据!登录信息session等放缓存实现共享!诸如商品分类,省市区,年龄分类等不常改变的数据,放缓存,不要放数据库!
同时要避免缓存雪崩和穿透等问题的出现导致缓存崩溃!
4,增量统计:不要实时统计大量的数据,应该采用晚间定时任务统计,增量统计等方式提前进行统计,避免实时统计的内存,CPU压力!
5,加服务器:等大文件,一定要单独经过文件服务器,避免IO速度对动态数据的影响!保证系统不会因为文件而崩溃!
6,HTML文件,枚举,静态的方法返回值等静态化处理,放入缓存!
7,负载均衡:使用nginx等对访问量过大的服务采用负载均衡,实现服务集群,提高服务的最大并发数,防止压力过大导致单个服务的崩溃!
8,加入搜索引擎:对于sql中常出现的like,in等语句,使用lucence或者solr中间件,将必要的,依赖模糊搜索的字段和数据使用搜索引擎进行存储,提升搜索速度!#注意:全量数据和增量数据进行定时任务更新!
9,使用消息中间件:对服务之间的数据传输,使用诸如rabbitmq,kafka等等分布式消息队列异步传输,防止同步传输数据的阻塞和数据丢失!
10,抛弃tomcat:做web开发,接触最早的应用服务器就是tomcat了,但是tomcat的单个最大并发量只能不到1w!采取netty等actor模型的高性能应用服务器!
11,多线程:现在的服务器都是多核心处理模式,如果代码采用单线程,同步方式处理,极大的浪费了CPU使用效率和执行时间!
12,避免阻塞:避免bio,blockingqueue等常常引起长久阻塞的技术,而改为nio等异步处理机制!
13,CDN加速:如果访问量实在过大,可根据请求来源采用CDN分流技术,避免大流量完成系统崩溃!
14,避免低效代码:不要频繁创建对象,引用,少用同步锁,不要创建大量线程,不要多层for循环!
还有更多的细节优化技术,暂时想不起来了!
选择云服务器的配置的话就要主要参考这几个因素:CPU,内存,硬盘,带宽,线路,操作系统和地区。下面分别说一下:
CPU就代表了云服务器的运算能力,如果网站流量较大,如果网站流量较大,动态页面比较多,建议选择2核以上CPU,而且目前的云计算厂商提供云服务器的配置还可以随时增加,也就是当你觉得业务量增长了,需要更强的运算能力了,那么就可以直接在官网上进行资源扩充。
内存是数据的中转站,也是决定网站打开速度的重要因素,内存越大,可用缓存越大,打开速度也就越快。根据你网站的规模选择合适配置的空间,假如是一般的个人博客,或者企业展示网站类,就可以选小一点的,若是商城类,新闻类就要相对大一点的空间,针对于各种应用场景,需要采取不同规格的配置,总之,最适合的才是最好的。
硬盘是存储数据的地方,硬盘的大小要根据网站的数据大小决定,在选择时应该考虑到剩余空间。另外硬盘的I/O读取速度直接决定文件读取的快慢,云服务器硬盘的读取速度比其他网站快很多,一般情况下都够用。
根据网站的性质选择合适的带宽,看你的网站类型、结构和访问量等指标或者预计,一般新的网站,不多,也做了处理的,有2M足够了。带宽只要真实,不用多,够用,合适就好;或者,先选择2M,不够再加,这样比较稳妥。如果是普通的网站。比如文字网站,网站,论坛等,占用的带宽非常小。5000的访问量可能也占用不到2M的带宽。如果是视频,下载等为主的网站。可能几百个人同时在线都需要占用10M以上的带宽。
操作系统的选择和个人的熟悉情况和网站具体情况有关,对哪种操作系统比较了解就选择哪种操作系统,另外windows系统对asp程序支持较好,不过占用内存较多,而Linux系统对PHP程序比较友好,更省内存,并且有的程序可能只支持某个操作系统。现在比较主流的云服务器,像阿里云的ECS就提供的各个版本的操作系统的镜像,还能非常便捷地获取由云市场提供的各种应用软件的镜像和工具等,甚至可以实现免安装和一键部署。
线路的选择对于我们来说有的时候十分纠结。如果我们是针对于本地用户,那么我们本来可以选择单线路的服务器,但是双线服务器的优势一般在于双IP,并且对于一个城市来说,宽带有电信、网通不同的。
地区,即云服务器所在地区,最好选择在你目标用户所在的区域内,这样网站等打开速度更快。最好选择的云服务提供商有能力在多地部署数据中心,这样可以提供更好的容灾性还能帮助降低访问网站的网络时延。
最后总结:云服务器的配置选择,和网站或应用的类型、访问量、数据量大小、程序质量等因素有关,建议和网站或应用的开发技术人员沟通,选择最适合自己业务场景的配置。 如果没有技术人员可提供建议,不妨参考云服务器厂商提供的配置方案,像1核1GB 1M的入门型适用于个人网站初始阶段;1核 2GB 1M的基础型适合流量适中的网站应用,或简单开发环境、代码存储库等。另外,像阿里云还有专门针对网站、电商、游戏、移动app等不同行业的解决方案供参考。
相信在未来,更多的网站会选择上云,云服务器的作用和价值也会更大地显现出来。
0条评论