现在这类脚本语言的运行方式基本上有三种:
1、Apache Module方式
由Apache进程用module方式来管理,web请求的静态页面和动态请求都是由apache进程内部直接处理掉了。典型的如mod_php,mod_ruby,mod_perl,mod_python。这种方式目前PHP和Perl比较多的采用。这种方式其实还是非常成熟的,apache对于内存管理已经很好,运行效率各方面都很不错。当然apache进程之间也是SNA。
但是ruby和python一般不建议用这种方式,这是因为PHP和Perl解析器的开销非常小,以Apache Module方式跑很灵活而且不怎么消耗资源;而ruby和python的解析器开销非常大,用这种方式,很浪费资源。例如一个PHP解析器跑起来才消耗2MB内存,一般也就7-8MB。但是ruby解析器跑起来就是30MB内存,消耗多的时候高达200多MB。由于很多apache进程只是在处理静态资源,完全没有必要带着一个庞大的ruby在跑,因此就显得过于浪费了。
2、FastCGI/SCGI
ruby on rails很流行使用FastCGI,Python则流行SCGI,也是SNA,比上面的方案在部署和cluster方面要灵活的多。这种方式下,web server处理静态资源,将动态请求通过Unix Socket/TCP端口发送给后面的ruby/python进程来处理。一般来说,页面带有很多静态资源,因此一次用户的动态请求实际上对应了web server的好几个连接去处理静态资源,和一个后台ruby进程去处理动态资源。因为把静态资源和动态请求分开了,所以不再需要那么多的ruby进程来跑。据说一般经验公式是:apache进程数量如果是70个的话,那么FastCGI方式的ruby进程只需要开10个,7:1的比例。另外每个ruby进程再执行一次之后就会hold住这个数据库连接,以后就会直接使用了,避免了数据库连接的开销,已经类似Java的数据库连接池的作用了。
JavaEye2.0现在开了30个FastCGI的ruby进程,但是据我观察,大部分繁忙的时候,真正被用到的ruby进程也只有十几个而已。
3、ServerVM
Java和Zope都是这种方式,一个单一进程在跑,里面很多线程分别处理不同的动态请求,shared memory方式。有时候也会在前面放一个web server提高静态资源的处理能力。这种方式大家都很熟悉了,不用多说。
分享到:
相关推荐
该脚本是由shell语言编写完成,主要用于实现一键部署graylog-sidecar组件,其中包含...下载该脚本后可根据自身环境的服务器大小,来动态调整cgroup资源限制,使得该组件能以更优的方式运行。不会发生抢占系统资源现象。
包含62个文件,主要采用Python语言编写,并辅以Shell脚本,以实现灵活的自动化部署流程。 文件组成: - Python脚本(.py):共24个,构成部署流程的核心部分。 - 配置文件(.xml):17个,用于定义Ambari服务的配置...
通过阅读部署说明,即使是没有相关经验的用户,也可以顺利地将系统部署并运行起来。 演示视频部分,通过实际操作的方式,展示了系统的各项功能和操作流程。用户可以通过观看演示视频,快速了解系统的使用方法。 总...
本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...
本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计进度条、设计工具栏和菜单栏、设计面板、设计表格、设计表单、设计数据表、...
包含:项目源码、项目文档、数据库脚本、部署视频等,该项目附带全部源码可作为毕设使用。项目都经过严格调试,确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值 ...
NetBox 是一个使用脚本语言进行应用软件开发与发布的开发环境和运行平台,使用 NetBox,可以完全使用脚本语言(比如 VBScript,Javascript) 创建出稳定高效的应用软件,并且可以平滑移植到从 Windows 98 到 Windows ...
25. 脚本任务:支持以GLUE分布式平台开发和运行脚本任务,包括Shell、Python、NodeJS等类型脚本; 26. 多线并发:系统支持多线程触发调度运行,确保调度精确执行,不被堵塞; 27. 降级隔离:调度线程池进行隔离拆分,...
LUA 是一种轻巧、高效的嵌入式脚本语言,非常适合于编 写复杂的配置参数和逻辑计算过程。所有的脚本由 Center Server 负责执行,服务器提供了对 LUA 语言本身的扩展,使其支持对内存存储池的直接读写、定时器、网络数据...
Kettle工具使用 培训教程 目录 ETL 简介 KETTLE 简介 KETTLE 安装和运行 KETTLE 菜单简介 KETTLE 案例讲解 控件介绍 日志介绍 一、ETL 简介 ETL 概念简介 ETL相关的质量特性 ETL 在数据仓库项目中的位置 二、kettle ...
.NET Framework的设计方式保证它可以用于各种语言,包括本书要介绍的C#语言,以及C++、Visual Basic、JScript,甚至一些旧的语言,如COBOL。为此,还推出了这些语言的.NET版本,目前还在不断推出更多的.NET版本的...
这个系统以jsp风格为主要的开发语言,使用现在比较流行的MVC框架作为辅助手段,运用于开源免费的小型tomcat服务器来进行对MYSQL操作,在Myeclipse企业版开发环境软件上运行,完成了一个酒店管理系统。本系统具有简单...
包含:项目源码、数据库脚本、部署说明文档、LW、演示视频等,该项目可以直接作为毕设使用。 项目都经过严格调试,确保可以运行! 系统选择java面向对象开发语言、前端使用html+css和JavaScript开发模式、数据库...
JavaServer Pages (JSP) 技术提供了一种简单快速的方法来创建显示动态生成内容的 Web 页面。...所有 JSP 的实现均支持以 Java 编程语言为基础的脚本语言,它有与生俱来的可适应性,支持复杂的操作。
2 技术可行性和先进性 自从WEB技术问世以来,它的发展速度非常惊人,从使用传统的HTML概念构建基础WE B页起步依次走过了使用脚本语言增添交互性技术、动态HTML技术、JAVA Applet技术、通用网关接口CGI、ActiveX技术...
支持对python脚本的解释运行,可以便于将经常变化的业务逻辑采用脚本语言来实现,保持核心业务模块的稳定。 支持通用数据类型对象 通过通用数据类型,可以实现对象的序列化,便于各种数据的存储、在网络上的传输。...
部署方式 我们正在Linux Ubuntu 16.04 LTS上测试我们的代码。 建于 使用的编码语言 贡献 其他编码人员的任何帮助都将是非常棒的! 作者 凯尔·耶尔(Kyle Jelle) 执照 该项目已获得GNUv3的许可-有关详细信息,请...
如何使用JSP表达式语言,如何部署Web应用,如何开发定制标记,以及会话状态、包装器、过滤器、企业设计模式等方面的知识,以一种轻松、幽默而又形象的方式让你了解、掌握servlets和JSP,并将其运用到你的项目中去。...
如何使用JSP表达式语言,如何部署Web应用,如何开发定制标记,以及会话状态、包装器、过滤器、企业设计模式等方面的知识,以一种轻松、幽默而又形象的方式让你了解、掌握servlets和JSP,并将其运用到你的项目中去。...