服务器的优化

  作为一个技术人员,不能范两种错误:一个是安全问题、一个是高并发的问题。前面我们说了安全问题,这里我们再来说说高并发的问题。   产品的新增用户越来越多,本来产品走势很好。但可能会因为不能承受高并发,影响用户正常使用功能,用户就都纷纷去用竞争对手的产品了。2015年初足记APP突然走红,但因为足记承受不了高并发,足足宕机一周时间。猪八戒网以前竞争对手很多,他们的人告诉我之所以他们能幸存下来,是因为几年前新闻媒体大量报道威客模式时,流量突然猛增,他们意识到了流行的趋势,在那期间大量增加服务器,而他们的竞争对手不以为然导致最后承受不了高并发,然后用户都来猪八戒网了。   要让程序能承受高并发,我总结了6个要点,大家可以参考。

  • 1,做好数据库优化   后端程序最可能出现瓶颈地方就是数据库,数据库做好了优化能让程序速度快很多。   首先我们要选择好MySQL引擎,InnoDB的优点是事务处理,如果是一般的读写建议用MyISAM。   要做好MySQL索引优化,如果MySQL没有索引,每次查询都是全表扫描,数据量大后性能就差,可以用explain来分析MySQL语句的性能。   做好表结构的优化,适当用一些冗余字段从而减少程序SQL语句出现join查询的情况, join查询的性能比较低, group by查询的性能更低,不要在访问量大的页面使用group by 查询。   设置好mysql的配置, query_cache_*相关的配置项可配置查询缓存, key_buffer可配置索引缓存, thread_cache_size可配置线程缓存, tmp_table_size配置临时表的大小。   可以用mysqlreport这个工具来分析mysql的健康状况。
  • 2,使用缓存   用MemCache、Xcache等可以对数据库查询结构进行缓存,从而降低数据库的压力。   PHP可以开启Opcache模块,对Opcache进行缓存Apache,Nginx,Varnish等运行环境都有缓存模块,数据不经常更新的页面可以开启运行环境的缓存。   还可以根据HTTP协议将缓存设置在用户的浏览器。
  • 3,使用队列   对于一些耗时的程序可以使用队列处理, NSQ,Gearman,Redis都可以做队列。   使用队列可以减轻服务器的负载。 举一个应用场景,比如有一个招聘产品用户上传简历后要对简历进行分析,要提取简历的文字,要生成简历截图,这是一个很耗时的工作,每次分析简历都可能需要1分钟。   在不用队列的情况下,如果有1000人同时在上传简历,那么就有1000个进程同时处理简历,每个进程都要花1分钟,此时服务器负载会十分高,内存和cup也不够用,服务器会宕机。 而如果我们使用队列,让简历分析排队来处理,一次同时只处理1、2份简历,服务器负载不会那么高。用户上传简历然后往队列里面加一个任务,再给用户显示一个“简历分析中”的页面,让用户等待一会儿, 这个页面每隔几秒钟会调用接口查询简历是否分析完成,如果分析完成页面就显示分析结果。  用了队列后 当访问量大的时候 服务器并不回宕机, 可能只是用户等待分析结果的时间会长一些而已。   12306网站上面购买火车票时下订单的时候也使用了队列。平时都能快速买到票,但在春节高峰期的时候下单等待时间能让用户等半个小时,但他们如果不用队列是支持不了这么大量的高并发的。
  • 4,搭建分布式环境   当访问量大到一定程度时,一台服务器不能支持访问,需要多台服务器,这时候需要搭建分布式环境, 可以用Nginx ,LVS等做负载均衡来搭建分布式环境。 可以用Docker封装我们的应用,这样每次要扩容时启动Docker十分的快。   我们的数据库也可以做分布式的主从读写分离。
  • 5,压缩文件   Apache,nginx运行环境有压缩模块, PHP可以设置配置项zlib.output_compression进行压缩,前端js,css文件可以用工具压缩减少体积 。图片可以用css sprite的方法切图,将多张图片合并在一张图片上提高加载图片的速度。   对文件做上述压缩后,用户访问使用流量减少,用户访问速度更快。
  • 6,使用云计算   支持高并发有一个最简单的方法就是使用云计算。分布式环境,分布式数据库这些环境云计算的服务商已经搭建好了,我们只管用就可以。而且云计算是弹性计费的, 用多少付多少,不像购买服务器,一年没有多少流量也要不少的服务器租赁费,使用云计算,我们不用把重心放在服务器的搭建和维护上,而可以专心开发自己的产品。阿里云,青云等都是IAAS类的云,他们提供的只是基础服务,使用它们我们还是需要花精力来维护操作系统。大家可以试一试新浪云SAE,它是PAAS类的云,提供的是程序运行平台,我们连操作系统都不用维护。   我们要对自己的系统能承载的并发量进行测试,要知道自己系统能承受多大并发, 并对系统流量进行监控,  当发现流量变大,快到达最大能承受并发量时应即使扩容。 测试并发量可以用压力测试工具(如 ab,wrk,webbench等)。 可以用OneAPM 对程序性能监控,实时知道应用的流量。   关于服务器优化的知识很多,本书由于字数限制只能做简要的介绍,大家还需收集其他资料来学习或者学习优才学院的web全栈课程,优才学院的CEO伍星老师也是本书作者之一,他曾是开心网创始团队成员,亲手部署过上千台服务器,处理过上亿的高并发,他们的全栈课是能真正学到如何处理高并发的,我也在全栈课里面为大家讲几节课。
时间: 2024-08-10 00:04:31

服务器的优化的相关文章

网站应用服务器性能优化方案总结

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

Web服务器性能优化

Web 服务器性能与站点访问性能优化思路 要优化 Web 服务器的性能,我们先来看看 Web 服务器在 web 页面处理上的步骤:1.Web 浏览器向一个特定的服务器发出 Web 页面请求;2.Web 服务器接收到 web 页面请求后,寻找所请求的 web 页面,并将所请求的 Web 页面传送给 Web 浏览器;3.Web 浏览器接收到所请求的 web 页面内容,并将它显示出来. 上面三个步骤都关系 Web 服务器,但实际 Web 服务器性能相关最大的是在第 2 步,这里 Web 服务器需要寻找

PHP服务端如何通过程序将图上传到指定的图片服务器与图片服务器的优化方案

一:PHP服务端如何通过程序将图上传到指定的图片服务器与图片服务器的优化方案 (1) php服务器把图片处理成缩率图或指定大小的图片在通过PHP程序代码 操作FTP 上传到图片服务器. 二:图片服务器的优化方案 (1)用独立的图片服务器处理图片[LigHttpd图片服务器],从处理图片上来看性能要高过Apached和nginx.(2)查看是否是带宽问题导致=>>>确保带宽充足(3)硬盘的IO读写性能[磁盘列阵=>购买多个磁盘] 1)raid0:至少两个硬盘,图片保存在不同的磁盘上.

Openfire服务器MySQL优化

Openfire服务器MySQL优化: [[email protected] ~]# mysql -u root -p XXXXX mysql> show processlist; +----------+-----------------+---------------------+-------+---------+-------+-----------------------------+------------------+ | Id       | User            |

linux服务器一键优化脚本

服务器一键优化脚本,高亮显示 内容:关闭selinux.时间同步设置.zabbix-agent安装.句柄数调优.常用软件安装.永久静态路由添加 #/bin/bash echo "####start shutdown selinux########" sed -i 's/SELINK=enforcing/SELINK=disabled/' /etc/selinux/config setenforce 0 value_selinux=`getenforce` if [ value_seli

nginx 服务器并发优化

apache 提供的 ab 可以对服务器进行压力测试, 安装 ab:   apt-get install apache2-utils 安装完后,ab 在目录  /usr/bin/ 下的. 执行: ab -c 并发数 -n 请求数 请求的URL    如: ab -c 2000 -n 50000 http://192.168.137.47/    表示对 http://192.168.137.47/ 进行50000次请求,并发数为 2000 我运行的机器不是在 192.168.137.47 上,运

JAVA开发之大型互联网企业高并发架构Tomcat服务器性能优化视频教程

课程目标熟练掌握高并发架构Tomcat服务器性能优化. 适用人群对计算机,java开发人员,Java架构师,运维感兴趣的朋友! 课程简介Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同开发而成.Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. Tomc

linux 服务器初始化优化脚本

linux 服务器初始化优化脚本 ---------------------------------------------------------------------------------------- #!/bin/bash ## Writes By Tian ## Ver 1.1.0 at 20180705 #关闭 ctrl + alt + del (linux 6.x ) echo "关闭 ctrl + alt + del ......." sed -i "s/

linux服务器分析优化

一.系统性能分析 1.系统的性能是指操作系统完成任务的有效性.稳定性和响应速度.操作系统完成任务与系统自身设置.网络拓扑结构.路由设备.路由策略.接入设备.物理线路有关.当linux服务器出现问题,应该从应用程序.操作系统.服务器硬件.网络环境等方面排查. 2.性能优化方案提供:影响系统性能最大的因素是应用程序和操作系统两个方面,因为这两个方面出现的问题隐藏性好,不易察觉,而其他方面出现的问题一般会立刻定位到.系统硬件:(1).当硬件属于物理故障,直接更换硬件:(2).硬件性能不满足需求,升级硬

web服务器并发优化(nginx+多实例tomcat负载均衡并发5000左右)

前言:   我之前在服务器方面不太懂,经过此次的配置让我的技术有了很大的进步,写此给大家共享一下,如有错误之处欢迎指正.   配置这个初衷是为了给java(s2sh框架)写的app接口提供大的并发量支持 ,并且是https的接口 (淘宝买的 http://item.taobao.com/item.htm?spm=a1z09.2.9.69.zvqUo9&id=39486787932&_u=21mb264ebe80   卖家人不错,我说配tomcat  给的jsk文件,几天后我配nginx给了