tomcat性能分析
Tomcat 默认配置的最大请求数是 150,实际上也就300-400并发 当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高,但也会加重 GC 的负担。qps100以下单服务器,单应用qps1000以下启动多个tomcat实例(tomcat集群),并使用负载均衡服务器对其访问进行分配。用户访问直接访问负载均衡服务器。qps10000以下通过分布式架构,将session服务化,解决session复制问题,并按照功能模块拆分成独立子系统,独立配置子系统集群(加服务器,不用配置session共享)。
生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序,单台Nginx + PHP5(FastCGI)服务器跑PHP动态程序的处理能力已经超过“700次请求/秒”,相当于每天可以承受6000万(700 60 6024=60480000)的访问量
Nginx的高并发,官方测试支持5万并发连接。实际生产环境能到2-3万并发连接数。10000个非活跃的HTTP keep-alive 连接仅占用约25MB内存。三万并发连接下,10个Nginx进程,消耗内存150M。淘宝tengine团队说测试结果是“24G内存机器上,处理并发请求可达200万”。
mysql阿里云性能比较
QPS:全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。简单的说,QPS = req/sec = 请求数/秒。它代表的是服务器的机器的性能最大吞吐能力。TPS 即 Transactions Per Second 的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。TPS 的过程包括:客户端请求服务端、服务端内部处理、服务端返回客户端。
问:为什么叫集群空间?
答:因为他不只是把空间开在一台服务器上,而是开到一个群组的所有服务器上,一般20台为一个群组。
问:集群空间跟传统空间的最大不同是什么?
答:集群空间有数据同步和宕机检测与智能解析域名的功能。
问:集群空间为什么会比传统空间稳定?
答:因为当客户开通一个集群空间后集群空间系统就会把客户的空间和站点资料同步到同
一个群组的所有服务器上,一但当前访问的服务器不能正常工作时,智能系统就会把客
户的域名解析到能正常工 作的服务器上。
问:站点数据同步需要多长时间?
答:新开设的站点数据同步到所有服务器上大概需要一个小时。如果站点数据小会更快。
问:站点参数(如:加减域名绑定)修改多长时间同步?
答:10分钟内同步成功
问:当服务器坏了多长时间会转移到正常的服务器上。
答:最长不会超过1分钟,因为宕机检测30秒一次,同时域名的重新解析也需要30秒才生
效。
问:站点跟数据库是否可以开在同一台服务器上?
答:最好不要,因为集群系统暂时还没同步大型数据库(mssql;mysql)。所以当服务器不
能正常工作时,集群系统只是把您的站点转移到别的服务器上,并没把数据库也同时转
移过去,所以最好把数据库开设在群外的服务器上。
问:集群空间是否支持开通php空间?
答:可以支持php,但还没办法同步mysql数据同步。将在二期工程实现
问:集群空间跟传统空间使用上有什么不同?
答:考虑到用户的方便使用,我们在设计的时候就本着尽量减少手工操作的思路,所以在使
用方面他们没有太大的区别,唯一的区别是我们用免费提供的二级域名代替原来的IP,
也就是说使用传统的空间时,用户是把自己的域名解析到IP上,现在是作别名
(CNAME)解析到我们免费提供的二级域名,和登录FTP的地址是我们提供的二级域
名。
问:域名本身(不带www)如何作别名(CNAME)解析
答:作别名解析的时候主机名不能为空,如果要给域名本身作别名解析请在主机名的位置上填写noprefix ,提交后自然变为空。
问:集群空间是否能防CC攻击?
答:集群空间系统本身没防CC攻击的功能。可我们也有自主开发的防CC攻击防火墙可以屏蔽掉95%的攻击IP。
问:正被攻击的空间转到集群空间是否马上有效。
答:必须在您把站点资料传到服务器上大概三个小时才有效,因为系统把您的站点资料同步到同群内的所有服务器上的过程需要大概三个小时。您站点资料比较少就会更快。
有太多的原因使得PHP成为世界上最受欢迎的脚本语言——高度灵活、简单易用——不过写PHP(或者任何这种语言)代码时,人们常常陷入单调重复而令人生厌的体力活动的窘境。而这正是PHP开发框架大显身手的地方。
通过提供一个开发Web程序的基本架构,PHP开发框架把PHPWeb程序开发摆到了流水线上。换句话说,PHP开发框架有助于促进快速软件开发(RAD),这节约了你的时间,有助于创建更为稳定的程序,并减少开发者的重复编写代码的劳动。这些框架还通过确保正确的数据库操作以及只在表现层编程的方式帮助初学者创建稳定的程序。PHP开发框架使得你可以花更多的时间去创造真正的Web程序,而不是编写重复性的代码。
PHP开发框架背后的思想被称为“模型—视图—控制器”(MVC)。MVC是这样一种架构模式,它隔离了业务逻辑与UI,允许其一改变而另一者不受影响。(也可以说是关注点的隔离)在MVC中,模型负责数据,视图负责表现,控制器则是程序主体或者说是负责业务逻辑。从本质上说,MVC拆分了一个程序的开发过程,这样你就可以修改独立的每一部分,而其他部分不受影响,这是十分重要的,它使得编写PHP代码更为快捷简单。
首先说windows和Linux系统在企业的服务器中都是有使用的,关于一个企业是选择windows作为服务器系统还是Linux作为服务器系统还是要看企业对于服务器的需求和一些技术上的需要。
1、简要说一下windows系统和Linux系统。
windows系统相信大家都不陌生,现在大家基本上使用的都是以windows操作系统为主,而服务器上使用的windows操作系统一般指的的是windows的服务器版本系统:windows server 系列。windows server系列也有很多的版本,如windows server2003、windows server 2008等。这些服务器版本的windows和普通windows版本的不同在于其是根据服务器需求进行开发的,如支持更大的内存、支持一些服务器的策略设置、支持服务器集群等,这些功能都是针对服务器的功能,总之windows server版本就是一个适合服务器的操作系统版本,其功能大多都是针对服务器的。再说一下Linux系统,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。以上是专业的解释,简单说Linux是一个免费的操作系统,其也是非常的好的支持服务器环境,且其不太适合图形化操作更适合命令行操作,而windows server是收费的系统,且其主要的还是图形化操作方式。
2、公司选择什么系统之性能和易用性。
因为Linux是开源的操作系统,其功能可以自己定义和修改,且其没有图形化界面,总而言之Linux的一些特性使得Linux的效率要比windows高且其使用起来更加灵活,因为Linux的严格的用户权限管理机制使得Linux更加安全。虽然windows的图形界面会在一定的程度上降低windows的性能,但是图形化的界面也为windows带来了操作简单方便的特点,且大家都是使用windows出身,那么 windows server系统的操作学起来要比Linux简单的多。总结:个人认为Linux比windows server的性能更好,而windows server比Linux有更好的易用性。
3、公司选择什么系统之用途和技术搭配和成本。
关于服务器的用途决定了其安装什么操作系统,比如公司需要搭建一台服务器进行系统网络和局域网的域管理,那么此时应该使用的当然是windows server操作系统。在比如公司的需要对外发布一个web网站,公司决定使用aspnet作为网站后台,我们都知道aspnet的最好组合是windows server + IIS +sqlserver数据库,那么此时公司的机房服务器也可能要安装windows server 系统,而我们要发布一个php的网站,那么我们也都知道php的最佳运行环境是lamp即Linux+Apache+mysql数据库+php,此时可能我们需要的采用Linux作为操作系统。
再说一下成本,Linux的是开元不收费的系统,而windows server是收费的操作系统,但是公司请一个Linux的运维管理员的成本要高于windows server的管理员,这些问题都是公司需要考虑平衡的,毕竟公司要考虑公司的利益。
最后,以上就是个人对于公司选择什么操作系统作为服务器操作系统的一些看法,也可能有很多其他的因素影响着这个选择,以上只是个人的一些看法和其中的一些因素。
对于进阶我们首先需要明白它是建立在PHP基础上而进行升华的,它不单单是高级的内容,而是我们对于PHP开发程序原理的深入理解,再到对网站的性能优化、微服务、网站架构、高并发问题解决方案、团队管理等一系列学习内容。
在不同的时期进阶学习的内容也不一样,所以需要把握当下的基础,然后去针对每个时期应该学习和具备的内容,一步一步的进阶上去,这样才是稳扎稳打的。就像一套军体拳,打出该有的作用就可以,而不是一味的去注重华丽的动作。
初期
在初期我们应该把PHP基础打扎实,下层基础决定上层建筑。在这个时期我们应该注重项目实战、编程思考、开发模式、实用功能开发。
需要学习:PHP基础语法、PHP扩展、面向对象、MySQL操作、linux环境编译安装(例如:lnmp、lamp)、常用框架(例如:laravel、tp)、常用设计模式、PSR开发规范、项目封装等
中期
在这个阶段我们应该开始注重项目开发后的性能,对开发过程的原理分析,对于网络编程要开始学习准备了。自己可尝试重构代码。开发自己需要的组件功能
需要学习:框架的底层原理、缓存数据库的操作Memcache,Redis,Mongodb)、MySQL优化、PHP底层原理实现机制、服务器优化、网络模型、io模型、集群搭建、主从复制与读写分离等
后期
在这个时期,基本上你的技术能力都已经具备的很充分,这个时期我们应该从项目网站的整体架构和公司的业务线,以及人员管理、自身领导力入手。这个时期更加注重管理和规划的能力。
需要学习:微服务的架构设计,高并发的解决方案。项目网站的技术选项、团队人员协调、团队问题解决等。
综上,需要把握每个时期的核心关键要求,切记不要太过的去分散精力,这样你是具备可持续发展的
觉得有感悟,欢迎在线咨询
0条评论