网页显示tengine什么意思?
Tengine是由淘宝网发起的一个Web服务器项目,是一个基于Nginx的Web服务器增强版,主要用于高并发、分布式的Web服务。Tengine在Nginx的基础上增加了一些功能模块,如动态模块、Lua脚本引擎、流量控制等,同时对Nginx的性能和稳定性进行了优化。Tengine的目标是成为一个高性能、高可靠性、高扩展性、高安全性的Web服务器软件,适用于各种规模的Web应用和服务。
当我们在浏览网页时,如果看到网页底部或者其他地方显示"Tengine",那么说明该网站使用了Tengine作为Web服务器。这并不影响我们正常浏览网页,只是告诉我们该网站所使用的Web服务器软件是Tengine。
先学测试吧。不是那种业务功能的测试,是系统的测试。因为要解决大数据量、高并发的问题,我个人的知识与经验是:1、先用单机测试。用工具产生大并发量去轰击服务器,直至服务器缓慢,甚至接近崩溃;3、找到系统瓶颈后,优化,解决这个瓶颈,然后再循环测试。这时你又会发现新的瓶颈,再解决。循环1 - 3步,直到各方面基本平衡为止。4、当单机无法解决问题的时候,接着开始考虑负载均衡,考虑分布式方案,然后再用 1 - 3 的步骤分析与测试。
Apache的发展时期很长,优点也非常多,它兴起的年代,互联网产业远远比不上现在。所以它被设计为一个重量级的。它不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接,高度的模块化和自由软件许可证是的第三方模块层出不穷,同时Nginx是一个跨平台服务器,可以运行Linux,Windows,FreeBSD,Solaris,AIX,MacOS等操作系统上,这些优秀的设计可以带来极大的稳定性,因此,Nginx也成为了时下最热门的Web服务器。
有多高?这个有很大区别
你去搜索一下 “F5” 负载均衡,从硬件角度解决
50~500/秒 的并发一般的服务器+tomcat 都可以承受。
所以很难理解你的 web 要给多少人用呀?假设10万人集中在10分钟内一起操作,也就是每分钟1万,也就 200/秒 都不到。就算正太分布,也就 需要700/秒,服务器稍好,弄个weblogic,或者websphere 就搞定了呀
应用服务器的性能分析是复杂的,关注点很多。比如典型场景Web服务器+数据库,底层网络链路和网络硬件性能姑且不论,单看:Web服务器对静态文件的读写与磁盘和文件系统IO性能紧密相关;对数据的处理和数据库性能相关;而高并发访问则关系到操作系统的线程、网络套接字以及异步网络模型的效率。
在数据量大的情况下,数据库的性能成为一个至关重要的因素,随之带来Web服务器等待数据库的时间。在此基础上如果有大量的用户同时访问,那么会对Web服务器带来什么样的影响?以下主要讨论这个问题。
对于并发访问的处理,一般有两种处理机制:异步非阻塞机制、多线程阻塞机制(介绍略)。在测试选择上,前者使用基于Python的Tornado服务器,而后者使用基于Java的Tomcat服务器。注意:本文并非讨论开发语言的优劣,事实上,新版本的Java也支持异步机制,甚至高性能的epoll等。
测试工具:变态级的http_load
测试方法:使用该工具模拟1、10、100、1000个客户端并发访问以下场景,每次测试时间1分钟,得到服务器端每秒的总响应数。注意:由于Tomcat最大线程的限制(下面有提到)以及操作系统对端口数量的限制,1000个并发已经能够得到明显的结论了。
测试场景:
静态文件的读写。一个html文件和一大一小两个,大小分别为676k、16M和12k,使用http_load工具随机读取。静态文件读写的耗时可以忽略不计的。
模拟一个耗时操作,比如数据库操作。注意:耗时操作并不占用Web服务器本身的资源,它更多地体现的是Web服务器对并发访问处理的“合理”性。
1、程序和数据库部署在同一台服务器上 2多学习一些相关的书籍比如:构建高性能Web站点,大规模Web服务开发技术 构建可扩展的Web站点 , Web容量规划的技术,分布式数据库系统及其应用。 掌握其原理和结构 。
理论上经验这个东西是学不来的
说一下我的例子
刚入行的时候,基本就是写了一些增删改查甚至session都不太理解
随着入行后,你会遇到各种各样的问题在解决问题的过程中,经验来了
简单说一下所谓大规模高并发访问的web架构吧
其实,对于大规模高并发不外乎两点,第一点是及时相应(尽可能优化io)第二点是数据安全
这两点控制的好,就没问题的所以,我们的架构也就围绕在这两点应运而生
第一点,为了尽可能提高应用的io吞吐量则需要我们把所有耗时的io操作尽可能的优化,比如全局使用很少更改的一些配置,则可以采用nosql来全局共享(注意,这里的全局是指服务器集群如果涉及到了大规模,肯定是多服务器的)在其次可以增加服务器缓存比如2秒钟从上一条的服务器读取配置,存到服务器级别以提高效率还有线程缓存如果业务复杂可能对一个请求需要查询多次数据,不变的,老规矩,放到线程缓存基本也就差不多了
第二点,因为应用不同,要考虑容错率这个部分优化,可以考虑分离业务,把必须要数据安全的业务逻辑提取出来,队列执行或者特殊处理
剩下的就是服务器部署与如何分配,比如多少台web服务器,数据库配置,内存服务器配置等
这只能是在实际项目和工作过程中来区别对待了
0条评论