首页 > 代码库 > web及性能调优
web及性能调优
nginx 的性能调优
1 修改CPU的核心数对应的Nginx work进程 这个一般是你CPU核心数的两倍,方正是倍数,具体要几倍可看具体硬件配置
2 修改文件描述符 65536 ulimit -n 永久生效可改/etc/sysctl.conf
3 修改Linux内核的调度算法 epoll
4 修改连接数 在理论上来讲是工作进程数* 连接数 但是,Nginx的理论并发值是65536,所以 。。。。。 你懂得
5 在多少时间之内要达到多少的并发量就缓存,否则。。。。。。 你懂得
6 (5)的这条规则的前提下,超过并发数量的次数,就缓存
7 定期的对(5)做检查
8 设置分页的buffer
9 设置存活时间 这是指cline端打开browser页面没有关闭就自动断开的时间
Nginx的功能还有哪些
Nginx可以做web 端口转发 还有就是反向代理
还能做方向代理的软件有哪些呢
Nginx 算一个 squid(没有Nginx那么好,它既可以做正想代理也可以做反响代理,只是反向代理的功能没有其他的那么强大) 算一个 varnish(专门用来做反响代理的) 也算一个
什么叫反响代理,什么叫正向代理?
你可以这样认为就是 client通过internet去访问服务器的内容,而此时的服务是在内部网络的,没有跟外部网络有连接,所以想要访问到服务器的内容就必须要通过代理软件去实现,那怎么实现代理服务端得指一下谁是他的后端服务器吧,然后后端服务器也要知道谁是他的代理服务器吧,都是这样子配置的。
正向代理 你就认为你不能上网,代理帮你去上网,然后在把数据返回来给你
反向代理 也是一样只是,如果他没有数据他就会去找后端服务器找数据然后再给客户端,如果有数据就直接返回
什么叫CDN呢?CDN即内容分发网络。为什么说CDN可以加速并且可以抵挡DDOS的一些攻击呢?那就是它的基本原理还是反向代理。反向代理的作用有两种,一种就说服务器内容的替身说白了就是冒充服务器给别人转发的内容的,另一种就是可以起到安全防护的作用。怎么说它就可以起到安全防护的作用呢?那是因为他充当了服务器的替身,如果你攻击服务器,那你真正攻击的人就是代理,所以是不会公道服务器的,所以这就起到了安全防护的作用。
反向代理的作用 保护网站的安全
反向代理的模型有两种模型,它可以作为内容服务器的替身,也可以作为内容服务器集群的负载均衡器
Nginx做端口转发相比于其他的软件有哪些优势呢
Nginx可以支持较全的正则表达式 而haproxy也是可以,只是稍微比Nginx稍弱了一些,还有一个是lvs
各个软件的异同点:
其实这些端口转发软件也可以称之为LB软件或是工具都行的,因为他们存在的意义就是为了解决单点故障而存在的。
Nginx与haproxy是工作在七层中的,haproxy也可以在4层中工作,而LVS只工作在四层,LVS本身就是用来做端口转发的。
haproxy弥补了Nginx的session跟cookie功能,而且对工作在tcp协议的应用软件都支持,Nginx呢只是支持email跟http两个,所以说过滤URL的话用Nginx较好,但是要支持较全的tcp应用软件的话还是用haproxy,因为haproxy的功能也不弱于Nginx 在端口转发发面跟Nginx是不相上下,甚至也可以说优于Nginx ,只是Nginx这款软件功能有些太过于强大。到现在好像LVS的身影出现出现比较少啊,那好现在就来说说LVS给我们带来什么让人喜悦功能。LVS 跟fastDFS都是我们国人自己开发的,并且现在的好多企业已经在用,前者的名字叫做章文松(博士)后者叫做余庆(CA)。
抗负载能力强,因为lvs工作方式的只分发请求啥也不管,如果你的某个节点出现故障了,那么他还是回去按他的调度算法把请求发给有故障的那一台的,虽然做负载均衡器里面是最强的,但是不支持正则表达式和动静分离。所以keepalive帮LVS做好了准备了,keepalive是一个用来做高可用的软件,同时带了健康检查机制下面就附上Nginx haproxy LVS三个软件的优缺点
Nginx 工作在七层,但是只支持email和http 正则表达式最强,没有cookie和session会话功能,配置型也简单(低)
haproxy 是弥补了Nginx的缺点,也是工作在七层,基本上都支持所有的应用,支持session会话功能,支持cookie,负载量大,支持动静分离
LVS 不支持动静分离和正则表达式,但是负载量最强,配置性低,工作在四层,因为只做转发没有流量,所以对i/o的影响几乎为零。
LVS有几种工作模式呢
LVS-DR:这是什么意思呢? 就是如果客户端发送来请求的话,数据不会直接就到realserver那边,而是先到LVS手上,然后LVS在通过他所谓的DR工作模式和调度算法去叫一台realserver来直接把数据包回应client,不用把数据再给LVS。这就是负载均衡器与正反向代理不一样的地方。
LVS-NAT:即网络地址转换,这个呢也是跟上面的DR有些类似,只是有一点不同的他的工作模式变了,年成啥样了呢,它是这样的:当客户端发来请求之后,他会根据他的这个调度算法和工作模式去一台叫realserver回应client,而在回应之前,realserver还有LVS有些事情要先完成才能完成这项叫做NAT的工作模式“工程”,那realserver跟LVS要做什么事情呢,要做的事情会很多么?没有其实原理也很简单,跟网络层的ARP协议一样,只是这里是把client的IP跟端口先转换成realserver的IP和端口,所以做完这件事情之后当然要开启网关路由了,那网关路由是随便指的么?NO ,网关路由是要指LVS的IP了,因为由它(LVS)给你回应数据的,所以指定网关的IP就是它了。在realserver上的工作已经做完了,接下来就该LVS什么都不用配置,只是LVS的工作模式是等realserver把数据转回来之后,就是转到LVS手上之后,LVS爱没有把数据直接给client,而是先把之前client请求过来的IP和端口转成VIP(虚拟IP),开始client请求数据的时候不是先把clientIP和端口改为realserver的IP和端口去跟realserver要数据去了么,这次要把数据返回给client,也是要经过跟去realserver要数据一样,只不过返回数据做的动作就不一样了,返回数据的动作是把改成realserver的IP和端口改成VIP(虚拟IP),不知道这样讲解你们时候明白了,这NAT模式真的就有点想正反向代理了。
LVS-TUN:即隧道的方式。 跟NAT不同的一点就是他不用将client的IP和端口地址重写。那是怎样呢?那就是将client的数据包封装到一个叫做IPtun的包里面也就是相当于二次封装,然后就把封装过后的包通过他的工作模式跟调度算法来决定要叫那一台realserver直接给client回应
它的详细工作流程应该是这样的 client发送请求,然后LVS-TUN的工作模式就把client发送过来的包通过二次封装成ip tun的包,然后通过调度算法发送给realserver 节点,realserver节点就解包之后直接发送给client。 就这样就完事了
mysql 的性能调优
1 禁用numa
2 修改内核的调度算法 deadline
3修改启动脚本
4 文件描述符
什么是fastDFS
fastDFS架构至少有client tracker storage 这三个构成,文字对于讲it的技术方面来讲,只要能理解了,就是好表达。所以有时候追求完美不是错,但要学会用在哪方面
想完全理解fastDFS这个东西首先你得知道它初衷设计的目的是基于C(客户机)/S(服务器)模式。
跟这个有一点相似的FTP服务,FTP这个服务也是基于C/S架构的
fastDFS 就是一个分布式文件系统,那它什么样的特点呢?分布文件系统是什么鬼? 其实就是可以分布在计算机的网络节点上,当然也可以在本地,只是现在大都偏向网络,所以一般说fastDFS都是指他可以在计算机的网络节点上有多个相连。如果你还记得最早由sun公司提出的NFS这个东西,那你理解fastDFS也就没有难度了。那什么是NFS呢?NFS是网络文件系统,也就是用来共享存储的,只是这个共享的方式是以目录(或者是说文件夹又或者说是仓库都是可以的的)方式共享出去的,而跟他类似的还有一个叫做iscsi,这个也是用来做共享,只是这个共享的方式是以磁盘共享到外面去的。还有一samba也是用来共享目录的,其实这些服务的配置都是差不多的,就比如像NFS,ISCSI,samba,mysql读写分离,mysql主从,差不多都是这样的。一般会有谁是我的从,我可以让谁来共享我的资源,指定谁是共享者,谁是要享受我的资源者,还有就是用什么端口啊,差不多的配置都是那样的。所以所运维方面的配置也没有太大的难度。
为什么要共享,什么时候需要我们共享啊,其实这个你可以通过我们现在好多例子来举例,方便管理啊,实现资源共享,方便快捷么?只要有网络你要给我的东西就未必非得通过U盘来传送是不是。
本文出自 “12556565” 博客,请务必保留此出处http://12566565.blog.51cto.com/12556565/1915327
web及性能调优