`
robbin
  • 浏览: 4821966 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
377a9ecd-1ea1-34ac-9530-9daa53bb2a7b
robbin谈管理
浏览量:137099
社区版块
存档分类
最新评论

动态脚本语言的部署运行方式介绍

    博客分类:
  • Tech
阅读更多
现在这类脚本语言的运行方式基本上有三种:

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提高静态资源的处理能力。这种方式大家都很熟悉了,不用多说。

分享到:
评论
1 楼 jordan421 2009-03-13  
喜欢看你的文章,很支持,经验的分享,生活和工作方面的,都让我很兴奋~~

相关推荐

    脚本语言支持组件支持库

    脚本语言支持组件则是一个中间件,它为应用提供一个接口,使得程序可以无缝地调用和执行脚本语言代码。这个组件通常包括以下几个关键部分: 1. **解释器集成**:组件内嵌了对应脚本语言的解释器,使得应用可以直接...

    论文研究-一种支持自动部署的脚本语言的设计与实现.pdf

    在应用部署方面,ACSPT脚本语言提供了丰富的API接口,使得开发者可以编写出部署任务的执行逻辑。例如,组件和脚本可以通过onEvent方法响应各种事件,诸如初始化(initialize)、启动(start)、停止(stop)、销毁...

    基于groovy实现 java脚本动态编译、部署、发布;可以通过脚本直接调用dubbo接口.zip

    本文将深入探讨如何基于Groovy实现Java脚本的动态编译、部署和发布,并且介绍如何通过Groovy脚本直接调用Dubbo接口,从而提高开发效率和灵活性。 Groovy是一种基于Java平台的强大的动态编程语言,它具有简洁的语法...

    OSS平台上运行的OPS脚本语言介绍

    OPS(Operations Procedure Support)是爱立信开发的一种脚本语言,专为在OSS(Operations Support System)平台上执行运维任务而设计。OSS系统通常用于电信网络管理和维护,OPS脚本语言则是为了简化和自动化这些...

    脚本语言编程(web课设报告)

    本实验报告详细介绍了如何使用VBScript和JavaScript这两种脚本语言进行编程,并通过实际操作加深对它们的理解。 首先,实验要求掌握了Web服务器软件IIS的安装、配置和测试。IIS(Internet Information Services)是...

    Java调用Groovy,实时动态加载数据库groovy脚本

    首先,Groovy是一种与Java高度兼容的脚本语言,它可以无缝地与Java代码集成,共享Java类库。Groovy代码可以被Java编译器理解,并且在运行时,GroovyShell或GroovyClassLoader等工具能够即时编译和执行Groovy脚本,这...

    Lua 5.1.4 Release 1 绿色英文版 轻量级的动态脚本语言

    Lua是一种广泛应用于游戏开发、系统配置、嵌入式设备、服务器端脚本等多个领域的轻量级动态脚本语言。它的设计目标是小巧、快速、易读易写,使得程序员能够快速实现各种功能。Lua 5.1.4 Release 1 是这个版本的更新...

    统信桌面操作系统PXE部署Python脚本

    Python作为一种强大的脚本语言,具有丰富的库和模块支持,非常适合编写自动化部署脚本。在PXE部署中,Python可以用于创建自动化流程,如下载ISO镜像、配置DHCP和TFTP服务器、生成配置文件等。 首先,我们需要了解...

    Windows下cpu部署运行清华大学ChatGLM-6B语言模型(详解).docx

    在本文档中,我们将深入探讨如何在Windows操作系统下部署和运行清华大学开发的ChatGLM-6B语言模型。ChatGLM-6B是一款强大的开源对话语言模型,具备中英双语支持和图像理解功能,其基础是General Language Model (GLM...

    rabbitmq部署脚本

    使用bash命令运行部署脚本: ```bash sudo bash rabbitmq部署脚本.sh ``` 注意,根据脚本内容,可能需要提供权限或进行参数传递。 7. **安全与管理**: 默认情况下,RabbitMQ不推荐开放公网访问,应配置...

    C# CSScriptLibrary 动态脚本编译

    在IT行业中,动态脚本编译是一项非常实用的技术,它允许程序在运行时加载和执行新的代码,极大地增强了软件的灵活性和可扩展性。在.NET框架下,C#结合CSScriptLibrary库为我们提供了这样的能力。下面我们将深入探讨...

    渔夫JS1.5服务端脚本语言

    【渔夫JS1.5服务端脚本语言】是一种轻量级的服务器端脚本工具,主要用于构建WEB服务端解决方案。它的设计目标是简洁高效,为开发者提供了一种快速开发和部署网页应用的方式。与传统的服务端语言如PHP、Python或Java...

    注册表脚本编程与应用.PDF

    - **执行方式**:脚本语言是解释执行的,无需编译步骤,使得其具有较强的交互性。 - **执行速度**:脚本语言的执行速度较慢,因为它需要在运行时解释每一行代码。 - **通用性**:脚本语言通常不具有广泛的通用性,...

    高效Ambari部署Python3脚本资源 - umx-deploy-script

    包含62个文件,主要采用Python语言编写,并辅以Shell脚本,以实现灵活的自动化部署流程。 文件组成: - Python脚本(.py):共24个,构成部署流程的核心部分。 - 配置文件(.xml):17个,用于定义Ambari服务的配置...

    ngx-lua蓝绿部署lua脚本

    2. **Lua语言**:Lua是一种轻量级的、解释型的、面向对象的、可扩展的脚本语言。它的语法简洁,易于学习,常用于游戏开发、嵌入式系统和网络服务等场景。在ngx-lua中,Lua被用于编写Nginx服务器的业务逻辑,例如处理...

    通过ISS打包ISS脚本

    8. **安装过程脚本化**:可以编写脚本来执行特定的动作,如运行安装后脚本、创建桌面快捷方式、设置环境变量等。 9. **编译与测试**:编写完成后,使用Inno Setup的编译器将脚本转换为安装程序,然后进行测试,确保...

    graylog-sidecar部署脚本

    该脚本是由shell语言编写完成,主要用于实现一键部署graylog-sidecar组件,其中包含...下载该脚本后可根据自身环境的服务器大小,来动态调整cgroup资源限制,使得该组件能以更优的方式运行。不会发生抢占系统资源现象。

Global site tag (gtag.js) - Google Analytics