搜档网
当前位置:搜档网 › apache优化

apache优化

apache优化
apache优化

mod_jk的优化配置

Optimal mod_jk configuration

There are many potential problems associated with the default configuration of mod_jk. Let's say it is perfectly adequate for a very low traffic website, but when pushing any moderate to high load to mod_jk, there will be connection problems. This is not due to any bug in mod_jk whatsoever, however, it is because the default configuration makes no assumption about your existing hardware or potential load, so, therefore, it is not tuned accordingly.

Note that the configuration recommendations here are optimal as a base configuration to avoid many of the common problems users experience with mod_jk. There exist many other useful optimizations, but these depend on the environment and web application in use. See https://www.sodocs.net/doc/2c13725763.html,/connectors-doc/reference/workers.html for details on all available mod_jk properties.

Let's take a look at a typical default configuration for Apache/Tomcat/mod_jk:

workers.properties

worker.list=loadbalancer,status

worker.node1.port=8009

worker.node1.host=https://www.sodocs.net/doc/2c13725763.html,

worker.node1.type=ajp13

worker.node1.lbfactor=1

worker.node2.port=8009

worker.node2.host= https://www.sodocs.net/doc/2c13725763.html,

worker.node2.type=ajp13

worker.node2.lbfactor=1

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=node1,node2

worker.status.type=status

JBoss Web's (Tomcat) server.xml AJP snippet:

emptySessionPath="true" enableLookups="false" redirectPort="8443" >

Apache's httpd.conf:

StartServers 8

MinSpareServers 5

MaxSpareServers 20

ServerLimit 256

MaxClients 256

MaxRequestsPerChild 4000

The above configuration, under load, may cause mod_jk to be very slow and unresponsive, cause http errors, and cause half-closed connections. These problems can arise because there are no connection timeouts specified to take care of orphaned connections, no error handling properties defined in workers.properties, and no connection limits set in Apache and Tomcat.

First off, lets take care of Tomcat:

Configuring server.xml:

The main concern with server.xml is setting the connectionTimeout which sets the SO_TIMEOUT of the underlying socket. So when a connection in Tomcat hasn't had a request in the amount of time specified by

connectionTimeout, then the connection dies off. This is necessary because if the connection hasn't been used for a certain period of

time then there is the chance that it is half-close on the mod_jk end.

If the connection isn't closed there will be an inflation of threads which can over time hit the maxThreads count in Tomcat then Tomcat will not be able to accept any new connections. A connectionTimeout of 600000 (10 minutes) is a good number to start out with. There may be a situation where the connections are not being recycled fast enough, in this instance the connectionTimeout could be lowered to 60000 or 1 minute.

When setting connectionTimeout in Tomcat, mod_jk should also have connect_timeout/prepost_timeout set, which allows detection that the Tomcat connection has been closed and preventing a retry request.

The recommended value of maxThreads is 200 per CPU, so here we assume the server is a single core machine. If it has been quad core, we could push that value to 800, and more depending on RAM and other machine specs.

address="${jboss.bind.address}"

emptySessionPath="true"

enableLookups="false"

redirectPort="8443"

protocol="AJP/1.3"

maxThreads="200"

connectionTimeout="600000">

Configuring workers.properties:

See comments inline.

worker.list=loadbalancer,status

worker.template.port=8009

worker.template.type=ajp13

worker.template.lbfactor=1

#ping_timeout was introduced in 1.2.27

worker.template.ping_timeout=1000

#ping_mode was introduced in 1.2.27, if not using 1.2.27 please specify connect_timeout=10000 and prepost_timeout=10000 as an alternative

worker.template.ping_mode=A

worker.template.socket_timeout=10

#It is not necessary to specify connection_pool_timeout if you are running the worker mpm worker.template.connection_pool_timeout=600

#Referencing the template worker properties makes the workers.properties shorter and more concise

worker.node1.reference=worker.template

worker.node1.host=192.168.1.2

worker.node2.reference=worker.template

worker.node2.host=192.168.1.3

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=node1,node2

worker.loadbalancer.sticky_session=True

worker.status.type=status

The key points in the above workers.properties is we've added limits for the connections mod_jk makes. With the base configuration, socket timeouts default to infinite. The other important properties are ping_mode and ping_timeout which handle probing a connection for errors and connection_pool_timeout which must be set to equal server.xml's connectionTimeout when using the prefork mpm. When these two values are the same, after a connection has been inactive for x amount of time, the connection in mod_jk and Tomcat will be closed at the same time, preventing a half-closed connection.

Configuring Apache

Make note that maxThreads for the AJP connection should coincide with the MaxClients set in Apache's httpd.conf. MaxClients needs to be set in the correct module in Apache.

This can be determined by running httpd -V:

# httpd -V

Server version: Apache/2.2.3

Server built: Sep 11 2006 09:43:05

Server's Module Magic Number: 20051115:3

Server loaded: APR 1.2.7, APR-Util 1.2.8

Compiled using: APR 1.2.7, APR-Util 1.2.7

Architecture: 32-bit

Server MPM: Prefork

threaded: no

forked: yes (variable process count)

Server compiled with....

-D APACHE_MPM_DIR="server/mpm/prefork"

-D APR_HAS_SENDFILE

-D APR_HAS_MMAP

-D APR_HA VE_IPV6 (IPv4-mapped addresses enabled)

-D APR_USE_SYSVSEM_SERIALIZE

-D APR_USE_PTHREAD_SERIALIZE

-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

-D APR_HAS_OTHER_CHILD

-D AP_HA VE_RELIABLE_PIPED_LOGS

-D DYNAMIC_MODULE_LIMIT=128

-D HTTPD_ROOT="/etc/httpd"

-D SUEXEC_BIN="/usr/sbin/suexec"

-D DEFAULT_PIDLOG="logs/httpd.pid"

-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"

-D DEFAULT_LOCKFILE="logs/accept.lock"

-D DEFAULT_ERRORLOG="logs/error_log"

-D AP_TYPES_CONFIG_FILE="conf/mime.types"

-D SERVER_CONFIG_FILE="conf/httpd.conf"

Which tells me the Server MPM is Prefork. This is not always 100% accurate so you should also view the output of /etc/sysconfig/httpd to see if the following line is there: HTTPD=/usr/sbin/httpd.worker. If it is commented out you are running prefork, otherwise if

uncommented worker.

httpd.conf:

StartServers 8

MinSpareServers 5

MaxSpareServers 20

MaxClients 200

MaxRequestsPerChild 0

Or if Apache is using worker, it is

StartServers 2

MaxClients 200

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

MaxRequestsPerChild is 0, this is the recommended value when using mod_jk as mod_jk keeps open persistent connections. The key values in the above configuration are MaxClients and MaxRequestsPerChild, the rest of the values are left as default. Note that MaxRequestsPerChild is recommended to be 0 however the value may need to be greater than 0 depending on if Apache is used for other modules also, especially in the case of resource leakage.

Advanced worker-mpm Configuration

To get the most out of your mod_jk setup you should be using Apache's worker mpm which provides a definite performance improvement over the prefork mpm. The following section will detail how to configure Apache/mod_jk/Tomcat with the worker mpm and the math behind the configuration.

Let's start out with the worker mpm configuration

ThreadLimit 100

StartServers 5

MaxClients 1000

MinSpareThreads 100

MaxSpareThreads 1000

ThreadsPerChild 100

MaxRequestsPerChild 0

The optimal configuration completely depends on the hardware being used and the load requirements. But a general rule of thumb, keep processes low and thread count high. To determine the number of processes Apache will use simply divide MaxClients by ThreadPerChild. So in this case MaxClients (1000) / ThreadsPerChild (100) = Processes (10), so Apache will allocate a maximum of 100 threads per each 10 child processes resulting in a total of 1000 possible clients.

Now to translate this to mod_jk, mod_jk maintains a connection pool for each worker defined in workers.properties. By default with Apache mod_jk sets connection_pool_size to ThreadsPerChild, so in the above case that would translate to 100, giving 1000 possible connections to JBoss. This may or may not be desired.

Let's take a common example, there will be 3 JBoss servers that combined needed to be able to handle 900 concurrent connections

worker.list=loadbalancer,status

worker.template.type=ajp13

worker.template.port=8009

worker.template.ping_mode=A

worker.template.connection_pool_size=30

worker.template.socket_timeout=10

worker.template.retries=20

worker.node1.reference=worker.template

worker.node1.host=192.168.0.101

worker.node2.reference=worker.template

worker.node2.host=192.168.0.102

worker.node3.reference=worker.template

worker.node3.host=192.168.0.103

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=node1,node2, node3

worker.loadbalancer.sticky_session=True

worker.status.type=status

The above configuration tells mod_jk to multiplex 30 connections to the available Apache processes, which is 10 processes. So that means 30 connections multiplexed over 10 processes

gives 300 possible connections to each backend worker. Furthermore, the total connections able to be used in this configuration from Apache is 900 which means 100 connections will be left over for static content or whatnot.

Next configure maxThreads in each ajp connector to match the above.

Node 1 ajp connector:

address="${jboss.bind.address}"

emptySessionPath="true"

enableLookups="false"

redirectPort="8443"

protocol="AJP/1.3"

maxThreads="300"

connectionTimeout="600000">

Node 2 ajp connector:

address="${jboss.bind.address}"

emptySessionPath="true"

enableLookups="false"

redirectPort="8443"

protocol="AJP/1.3"

maxThreads="300"

connectionTimeout="600000">

Node 3 ajp connector:

address="${jboss.bind.address}"

emptySessionPath="true"

enableLookups="false"

redirectPort="8443"

protocol="AJP/1.3"

maxThreads="300"

connectionTimeout="600000">

Remember when using connectionTimeout which is always recommended, prepost_timeout and connect_timeout also need to be set, which is done. I'm not showing sticky session configuration, but that covered in the main mod_jk article in using mod_jk with JBoss.

秒杀抢购电商网站架构优化设计

秒杀抢购电商网站架构优化设计

一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个W e b系统遇到了很多的问题和挑战。 如果W e b系统不做针对性的优化,会轻而易举地陷入到异常状态。我们现在一起来讨论下,优化的思路和方法哈。 1. 请求接口的合理设计 一个秒杀或者抢购页面,通常分为2个部分,一个是静态的H T M L等内容,另一个就是参与秒杀的W e b后台请求接口。 通常静态H T M L等内容,是通过C D N的部署,一般压力不大,核心瓶颈实际上在后台请求接口上。

这个后端接口,必须能够支持高并发请求,同时,非常重要的一点,必须尽可能“快”,在最短的时间里返回用户的请求结果。 为了实现尽可能快这一点,接口的后端存储使用内存级别的操作会更好一点。 仍然直接面向M y S Q L之类的存储是不合适的,如果有这种复杂业务的需求,都建议采用异步写入。 当然,也有一些秒杀和抢购采用“滞后反馈”,就是说秒杀当下不知道结果,一段时间后才可以从页面中看到用户是否秒杀成功。

但是,这种属于“偷懒”行为,同时给用户的体验也不好,容易被用户认为是“暗箱操作”。 2.高并发的挑战:一定要“快” 我们通常衡量一个W e b系统的吞吐率的指标是Q P S(Q u e r y P e r S e c o n d,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。 举个例子,我们假设处理一个业务请求平均响应时间为100m s,同时,系统内有20台A p a c h e的W e b服务器,配置M a x C l i e n t s为500个(表示A p a c h e 的最大连接数目)。 那么,我们的W e b系统的理论峰值Q P S为(理想化的计算方式): 20*500/0.1=100000(10万Q P S)

Windows server 2003-tomcat-apache-优化 配置

tomcat 优化设置 调增tomcat6响应池、创建高线程的Connector: 查找tomcat6安装目录下conf目录中的server.xml文件,进行编辑 屏蔽tomcat默认Connector: –> 改为: (注:加入响应线程数控制,加入压缩传递模式,调整超时设置,屏蔽调试模式) apache 优化 一、使用压缩传递 1) 去掉#LoadModule headers_module modules/mod_headers.so前面的注释# 2) 添加LoadModule deflate_module modules/mod_deflate.so 3) 在VirtualHost中添加 SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary Header append Vary User-Agent env=!dont-vary 一个完整的演示:

LAMP(Linux+Apache+Mysql+PHP)优化技巧

LAMP(Linux+Apache+Mysql+PHP)优化技巧 [LAMP平台] LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件虽然并不是开开始就设计为一起使用的,但是,这些开源软件都可以很方便的随时获得并免费获得。这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得非常普便。为了改善不同组件之间的协作,已经创建了某些扩展功能。目前,几乎在所有的Linux发布版中都默认包含了“LAMP stack”的产品。这些产品组成了一个强大的Web应用程序平台LAMP 平台由四个组件组成,呈分层结构。每一层都提供了整个软件栈的一个关键部分:Linux:Linux 处在最低层,提供操作系统。其他每个组件实际上也在Linux 上运行。但是,并不一定局限于Linux,如有必要,其他组件也可以在Microsoft® Windows®、Mac OS X 或UNIX® 上运行。 Apache:次低层是Apache,它是一个Web 服务器。Apache 提供可让用户获得Web 页面的机制。Apache 是一款稳定的、支持关键任务的服务器,Internet 上超过65%的网站都使用它作为Web 服务器。PHP 组件实际上是在Apache 中,动态页面可以通过Apache 和PHP 创建。 MySQL:MySQL 提供LAMP 系统的数据存储端。有了MySQL,便可以获得一个非常强大的、适合运行大型复杂站点的数据库。在Web 应用程序中,所有数据、产品、帐户和其他类型的信息都存放在这个数据库中,通过SQL 语言可以很容易地查询这些信息。 PHP:PHP 是一门简单而有效的编程语言,它像是粘合剂,可以将LAMP 系统所有其他的组件粘合在一起。您可以使用PHP 编写能访问MySQL 数据库中的数据和Linux 提供的一些特性的动态内容。 [检测工具] 为了得到完整的调试结果,建议你采用ApacheBench 或者httperf之类的软件。如果你对非LAMP 架构的服务器测试有兴趣的话,建议你采用微软的免费软件:Web Application Stress Tool(需要NT 或者2000)。(其它服务器测试工具)检测Apache ,采用top d 1 显示所有进程的CPU 和内存情况。另外,还采用apachectl status 命令 [硬件优化] 1、升级硬件的一般规则:对于PHP 脚本而言,主要的瓶颈是CPU ,对于静态页面而言,瓶颈是内存和网络。一台400 Mhz 的普通奔腾机器所下载的静态页面就能让T3 专线(45Mbps)饱和。 2、采用hdparm 来优化磁盘,一般能提升IDE 磁盘读写性能200%,但是对SCSI 硬盘也有效果。(不同类型的硬盘对比) [策略优化] 3、Apache 处理PHP 脚本的速度要比静态页面慢2-10 倍,因此尽量采用多的静态页面,少的脚本。 4、PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个PHP 缓冲产品能提升25-100% 的性能。 5、如果你采用了Linux 系统,建议升级内核到2.4,因为静态页面由内核服务。 6、另外一项缓冲技术是把不常修改的PHP 页面采用HTML 缓冲输出。 7、不要在Web 服务器上运行X-Windows ,关掉没有必要运行的进程。 8、如果能够用文本就不要用图像,尽量减小图片的尺寸。

三大WEB服务器对比(apache_,lighttpd,nginx)

三大WEB服务器对比分析(apache ,lighttpd,nginx)一.软件介绍(apache lighttpd nginx) 1. lighttpd Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能。 Lighttpd使用fastcgi方式运行php,它会使用很少的PHP进程响应很大的并发量。 Fastcgi的优点在于: ·从稳定性上看, fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分配新的进程来运行逻辑. ·从安全性上看, fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮, ·从性能上看, fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态IO处理完全不需要逻辑程序的参与(注1) ·从扩展性上讲, fastcgi是一个中立的技术标准, 完全可以支持任何语言写的处理程序(php,java,python...) 2.apache apache是世界排名第一的web服务器, 根据netcraft(https://www.sodocs.net/doc/2c13725763.html,)所作的调查,世界上百分之五十以上的web服务器在使用apache. 1995年4月, 最早的apache(0.6.2版)由apache group公布发行. apache group 是一个完全通过internet进行运作的非盈利机构, 由它来决定apache web服务器的标准发行版中应该包含哪些内容. 准许任何人修改隐错, 提供新的特征和将它移植到新的平台上, 以及其它的工作. 当新的代码被提交给apache group时, 该团体审核它的具体内容, 进行测试, 如果认为满意, 该代码就会被集成到apache的主要发行版中. apache 的特性: 1) 几乎可以运行在所有的计算机平台上. 2) 支持最新的http/1.1协议 3) 简单而且强有力的基于文件的配置(httpd.conf). 4) 支持通用网关接口(cgi) 5) 支持虚拟主机.

F5配置技术文档

目前,许多厂商推出了专用于平衡服务器负载的负载均衡器,如F5 Network公司的BIG-IP,Citrix公司的NetScaler。F5 BIG-IP LTM 的官方名称叫做本地流量管理器,可以做4-7层负载均衡,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处理、IPv6网关、高级路由、智能端口镜像、SSL加速、智能HTTP压缩、TCP优化、第7层速率整形、内容缓冲、内容转换、连接加速、高速缓存、Cookie加密、选择性内容加密、应用攻击过滤、拒绝服务(DoS)攻击和SYN Flood保护、防火墙—包过滤、包消毒等功能。 以下是F5 BIG-IP用作HTTP负载均衡器的主要功能: ①、F5 BIG-IP提供12种灵活的算法将所有流量均衡的分配到各个服务器,而面对用户,只是一台虚拟服务器。 ②、F5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障,F5会检查出来并将该服务器标识为宕机,从而不将用户的访问请求传送到该台发生故障的服务器上。这样,只要其它的服务器正常,用户的访问就不会受到影响。宕机一旦修复,F5 BIG-IP 就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。 ③、F5 BIG-IP具有动态Session的会话保持功能。 ④、F5 BIG-IP的iRules功能可以做HTTP内容过滤,根据不同的域名、URL,将访问请求传送到不同的服务器。 下面,结合实例,配置F5 BIG-IP LTM v9.x:

①、如图,假设域名https://www.sodocs.net/doc/2c13725763.html,被解析到F5的外网/公网虚拟IP:61.1.1.3(vs_squid),该虚拟IP下有一个服务器池(pool_squid),该服务器池下包含两台真实的Squid服务器(192.168.1.11和192.168.1.12)。 ②、如果Squid缓存未命中,则会请求F5的内网虚拟IP:192.168.1.3(vs_apache),该虚拟IP下有一个默认服务器池(pool_apache_default),该服务器池下包含两台真实的Apache服务器(192.168.1.21和192.168.1.22),当该虚拟IP匹配iRules规则时,则会访问另外一个服务器池(pool_apache_irules),该服务器池下同样包含两台真实的Apache服务器(192.168.1.23和192.168.1.24)。 ③、另外,所有真实服务器的默认网关指向F5的自身内网IP,即192.168.1.2。 ④、所有的真实服务器通过SNAT IP地址61.1.1.4访问互联网。 详细配置步骤: 一、登录到F5 BIG-IP管理界面: 1、初次使用: ①、打开F5 BIG-IP电源,用一根网线(直连线和交叉线均可)连接F5 BIG-IP的3.1管理网口和笔记本电脑的网口,将笔记本电脑的IP地址配置为“192.168.1.*”,子网掩码配置为“255.255.255.0”。 ②、用浏览器访问F5 BIG-IP的出厂默认管理IP地址https://192.168.1.245或https://192.168.245.245 ③、输入出厂默认用户名:admin,密码:admin ④、点击Activate进入F5 BIG-IP License申请与激活页面,激活License。 ⑤、修改默认管理密码。 2、以后登录: 通过F5 BIG-IP的自身外网IP登录。 ①、假设设置的F5自身外网IP为61.1.1.2,就可以通过https://61.1.1.2/登录。 ②、还可以通过SSH登录,用户名为root,密码跟Web管理的密码相同。 二、创建两个VLAN:internal和external,分别表示内网和外网。 ★创建VLAN演示页面:https://www.sodocs.net/doc/2c13725763.html,/book/f5/vlan_create.htm ★VLAN列表演示页面:https://www.sodocs.net/doc/2c13725763.html,/book/f5/vlan_list.htm 1、创建VLAN:internal(内网) 在“Network→VLANs”页面点击“create”按钮: ①、Name栏填写:internal(填一个英文名称) ②、Tag栏填写:4093(填一个数字) ③、Interfaces栏:将Available列的“1.1”拉到Untagged列。1.1表示F5 BIG-IP的第一块网卡。 2、创建VLAN:external(外网) 在“Network→VLANs”页面点击“create”按钮创建VLAN: ①、Name栏填写:internal(填一个英文名称)

Apache2.2安全配置和性能优化

Apache2.2安全配置和性能优化 一、Apache禁止目录遍历 将Options Indexes FollowSymLinks中的Indexes 去掉,就可以禁止Apache 显示该目录结构。Indexes 的作用就是当该目录下没有index.html文件时,就显示目录结构。 二、apache 隐藏版本信息 1.隐藏Apache版本信息 测试默认apache 的状态信息 [root@1314it conf]# curl -Is localhost HTTP/1.1 200 OK Date: Tue, 16 Nov 2010 04:20:15 GMT Server: Apache/2.2.3 (CentOS) DAV/2 PHP/5.1.6 mod_perl/2.0.4 Perl/v5.8.8 X-Powered-By: PHP/5.1.6 Connection: close Content-Type: text/html; charset=GB2312 [root@1314it conf]# 修改主配置文件httpd.conf ServerSignature Off ServerTokens Prod 重启apache 测试 测试隐藏版本号后apache 的状态信息 [root@1314it conf]# curl -Is localhost HTTP/1.1 200 OK Date: Tue, 16 Nov 2010 04:21:41 GMT Server: Apache X-Powered-By: PHP/5.1.6 Connection: close Content-Type: text/html; charset=GB2312

apache优化

mod_jk的优化配置 Optimal mod_jk configuration There are many potential problems associated with the default configuration of mod_jk. Let's say it is perfectly adequate for a very low traffic website, but when pushing any moderate to high load to mod_jk, there will be connection problems. This is not due to any bug in mod_jk whatsoever, however, it is because the default configuration makes no assumption about your existing hardware or potential load, so, therefore, it is not tuned accordingly. Note that the configuration recommendations here are optimal as a base configuration to avoid many of the common problems users experience with mod_jk. There exist many other useful optimizations, but these depend on the environment and web application in use. See https://www.sodocs.net/doc/2c13725763.html,/connectors-doc/reference/workers.html for details on all available mod_jk properties. Let's take a look at a typical default configuration for Apache/Tomcat/mod_jk: workers.properties worker.list=loadbalancer,status worker.node1.port=8009 worker.node1.host=https://www.sodocs.net/doc/2c13725763.html, worker.node1.type=ajp13 worker.node1.lbfactor=1 worker.node2.port=8009 worker.node2.host= https://www.sodocs.net/doc/2c13725763.html, worker.node2.type=ajp13 worker.node2.lbfactor=1 worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=node1,node2 worker.status.type=status JBoss Web's (Tomcat) server.xml AJP snippet: Apache's httpd.conf: StartServers 8 MinSpareServers 5

软件负载均衡配置方案V1.0

在线考试系统负载均衡配置方案 目录 方案背景 (3)

运行环境要求 (3) 硬件要求 (3) 软件要求 (3) 配置方案 (4) 软硬件负载均衡比较 (7)

方案背景 在线考试系统的软件和需求分析已经结束。针对于此,给出此配置方案,硬件的要求和运行效果都将详细列明指出。 运行环境要求 数据库服务器内存要求:建议16GB以上 客户端内存要求:建议256M以上 应用服务器内存要求:建议8G以上 硬件要求 软件要求 应用服务器: ●OS:Microsoft Windows 2000 Server (Advance Server) ●Microsoft Windows 2003 Server 数据库服务器: DBMS:SQL SERVER2008

客户端: OS:Windows 2000、Windows XP、Windows Vista 浏览器:IE6以上 配置方案 一台服务器: 一台服务器的情况,硬件配置: 用户同时在线数:2000-5000。最优化最稳定的范围在3500人左右。 五台服务器软件负载均衡 用户同时在线数:6000-15000。最优化最稳定的范围在7000人左右。 如果五台服务器支撑在线测试系统的运行,那么会考虑到采用apache+tomcat的方式来做负载均衡,确保系统运行的稳定性和准确性。 负载均衡说明图:

五-十台服务器硬件负载均衡

用户同时在线数:6000-40000。最优化最稳定的范围在15000-30000人左右。 如果五台以上服务器支撑在线测试系统的运行(最多十台),那么会考虑到采用硬件的方式来做负载均衡,确保系统运行的稳定性和准确性。 负载均衡说明图:

服务器产品技术白皮书-Loongson

深度操作系统 服务器产品技术白皮书 武汉深之度科技有限公司

目录 一、概述 (2) 二、深度操作系统服务器版 (3) 三、技术指标 (4) 四、应用需求 (6) 4.1 通用服务器应用 (6) 4.2 小型机替换 (6) 4.3 国产化应用 (7) 五、产品特点 (9) 六、技术特色 (10) 七、产品对比 (11) 八、应用场景 (13) 九、典型案例 (14) 9.1 国家工商总局法人库项目 (15) 9.2 国家工商总局商标局灾备项目 (16) 9.3国土资源部信访系统 (17) 9.4典型用户 (18) 十、产品资质 (19)

一、概述 深度操作系统将全球领先的技术和创新带入政府信息化建设和企业级信息技术基础架构,是当今国内增长最快的操作系统之一。许多政府和企业用户由于其易用性和可扩展性而选择深度操作系统,信息部门和运维部门则更重视深度操作系统提供给桌面终端的稳定性、安全性和灵活性。因为完全开放源代码和自下而上的自主研发,深度操作系统可以快速、轻松的增强和定制,而无需依赖国外厂家的产品维护周期。 深度操作系统服务器版提供对国产处理器与服务器的良好兼容,全面支持国产主流数据库、中间件和应用软件,并通过了工信部安全可靠软硬件测试认证,符合“自主可控”战略目标的要求,可以为国内电子政务、信息化管理等应用提供全国产一体化的架构平台。 深度操作系统服务器版通过对全生态环境的支撑,以及多应用场景解决方案的构建,能够满足企业级用户对服务器高稳定性、高可靠性、高可用性的要求。

二、深度操作系统服务器版 深度操作系统服务器版软件,是深度科技发布的符合POSIX系列标准和兼容LSB标准的服务器操作系统产品,广泛兼容各种数据库和应用中间件,支持企业级的应用软件和开发环境,并提供丰富高效的管理工具,体现了当今Linux服务器操作系统发展的最新水平。 深度操作系统服务器版软件,以安全可靠、高可用、高性能、易维护为核心关注点:基于稳定内核,对系统组件进行配置和优化,提升系统的稳定性和性能;在加密、认证、访问控制、内核参数等多方面进行增强,提高系统的整体安全性;提供稳定可靠的业务支撑,以及高效实用的运维管理,从容面对快速的业务增长和未来挑战。 产品分类产品名称 服务器操作系统产品深度操作系统服务器版软件(x86_64平台) 深度操作系统龙芯服务器版软件(龙芯平台,3B2000/3B3000等)深度操作系统申威服务器版软件(申威平台,1600/1610/1621等) 服务器应用软件产品 深度日志分析软件 深度高可用集群软件

iOS应用性能调优的25个建议和技巧

性能对iOS 应用的开发尤其重要,如果你的应用失去反应或者很慢,失望的用户会把他们的失望写满App Store的评论。然而由于iOS设备的限制,有时搞好性能是一件难事。开发过程中你会有很多需要注意的事项,你也很容易在做出选择时忘记考虑性能影响。 这正是我写下这篇文章的原因。这篇文章以一个方便查看的核对表的形式整合了你可以用来提升你app性能的25条建议和技巧。 请耐心读完这篇文章,为你未来的app提个速! 注意:每在优化代码之前,你都要注意一个问题,不要养成”预优化”代码的错误习惯。时常使用Instruments去profile你的代码来发现需要提升的方面。Matt Galloway写过一篇很棒的如何利用Instruments来优化代码的文章。 还要注意的是,这里列出的其中一些建议是有代价的,所建议的方式会提升app的速度或者使它更加高效,但也可能需要花很多功夫去应用或者使代码变得更加复杂,所以要仔细选择。 目录 我要给出的建议将分为三个不同的等级:入门级、中级和进阶级: 入门级(这是些你一定会经常用在你app开发中的建议) ? 1. 用ARC管理内存 ? 2. 在正确的地方使用reuseIdentifier ? 3. 尽可能使Views透明 ? 4. 避免庞大的XIB ? 5. 不要block主线程 ? 6. 在Image Views中调整图片大小 ?7. 选择正确的Collection ?8. 打开gzip压缩 中级(这些是你可能在一些相对复杂情况下可能用到的) ?9. 重用和延迟加载Views

?10. Cache, Cache, 还是Cache! ?11. 权衡渲染方法 ?12. 处理内存警告 ?13. 重用大开销的对象 ?14. 使用Sprite Sheets ?15. 避免反复处理数据 ?16. 选择正确的数据格式 ?17. 正确地设定Background Images ?18. 减少使用Web特性 ?19. 设定Shadow Path ?20. 优化你的Table View ?21. 选择正确的数据存储选项 进阶级(这些建议只应该在你确信他们可以解决问题和得心应手的情况下采用) ?22. 加速启动时间 ?23. 使用Autorelease Pool ?24. 选择是否缓存图片 ?25. 尽量避免日期格式转换 无需赘述,让我们进入正题吧~ 初学者性能提升 这个部分致力于一些能提高性能的基本改变。但所有层次的开发者都有可能会从这个记录了一些被忽视的项目的小小的性能备忘录里获得一些提升。 1. 用ARC管理内存 ARC(Automatic Reference Counting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露。它自动为你管理retain和release的过程,所以你就不必去手动干预了。 下面是你会经常用来去创建一个View的代码段: 1 2 3 4 UIView *view = [[UIView alloc] init]; // ... [self.view addSubview:view]; [view release]; 忘掉代码段结尾的release简直像记得吃饭一样简单。而ARC会自动在底层为你做这些工作。

网站的优化和推广策划方案

网站的优化和推广策划方案和举例 1、网站优化 将诊断报告中所提到有问题的地方加以解决,使网站达到健康的状态。健康的网站是搜索引擎优化的基础。详细请见网站诊断报告。 2、分析客户需求,制定目标关键词及拓展关键词 根据客户的主营业务,制定主关键词和拓展关键词。关键词定位是非常重要的一个环节,如果可以,尽量避免超级火暴的词,根据企业情况,定位于目标客户制定最合理的关键词,多拓展些更具专业性的词,真正将流量转化为企业客户。 3、分析对手的网站及动向 多分析竞争对手成功与失败的经验,少走弯路。如:对手的网站分析(关键词排名、导入链接等),推广分析(点击广告等),吸取有利的方面完善自己。还有不可忽视的就是那些发展非常快的潜在竞争对手。 4、树立企业形象 企业要发展,自身形象是不可缺少的,企业好的形象可以增加客户的信任度。网络是自由的世界,很可能存在恶意攻击,所以,出现各种评论也是很正常的。但如果任由反面报道肆意评价的话,长此以往企业的形象会大打折扣,也会减弱客户的信任度。正面的要发扬,反面的要反省,如果真的存在问题要马上改正。 5、使客户的网站活跃起来 要把企业的主营业务、主要产品一目了然的展现在用户面前,使

用户在第一时间就能了解企业和企业的产品,但也不要一味地把网站当成是一种宣传工具,还要把网站看成是与用户交流的平台。 6、流量统计分析 确定客户通过什么方式、什么关键词找到的企业,以及各关键词的使用频率等,方便下一步改进工作。 7、提交优化报告 定期向客户提交搜索引擎优化报告,经常与客户保持沟通。内容包括:网站的优化程度、特定关键词的排名情况、网站流量统计数据等信息。还要从客户那里听取反馈意见,以便确定优化方向的正确与否。 8、网站的日常维护 要告诉客户,网站的内容不在于越多越好,而在于“精”。使用户每次都能看到最新、最关心的信息,应在明显的地方设立“问题申报平台”,而且要提高审核效率,争取第一时间回复用户关心的问题。 9、网站优化解决方案 中记传媒通过对网站结构、网页布局、网站功能、网站内容等要素的合理设计和维护,使网站内容和表现形式对用户更加友好;并符合搜索引擎检索排序规则,使网站在搜索结果里取得更好排名。从而充分发挥网站的网络营销价值。中记传媒反对片面追求提高搜索结果排名,采用过度优化、作弊的方式,提倡合理优化,正规优化。 中记传媒根据客户的规模和要求不同提供多种网站优化解决方案: 普通客户推荐:营销型网站推广方案

最新整理Linux Apache Web服务器安全设置技巧

L i n u x A p a c h e W e b服务器安全设置技巧 网络安全是目前互联网的热门话题之一,作为个人用户的我们同样需要关注,做好防护。这篇文章主要介绍了L i n u x A p a c h e W e b服务器安全的8种安全设置技巧,需要的朋友可以参考下 方法步骤 第一、定期更新系统 首先,我们需要确保是已经安装了最新版本和 A p a c h e的安全补丁和附加如C G I,P e r l和P H P脚本代码。我们需要定期更新数据源依赖包操作。 #U b u n t u/D e b i a n a p t-g e t u p d a t e;a p t-g e t d i s t-u p g r a d e #F e d o r a/C e n t o s/R e d H a t y u m u p d a t e 根据自己的系统环境选择更新升级命令。 第二、设置和保护我们的S S H安全 我们在拿到V P S之后,建议修改端口、R O O T密码、以及授权单独的非R O O T用户权限管理,或者我们也可 以采用密钥的方式登录S S H客户端管理V P S。比如可以参考设置P u t t y S S H使用密钥登录L i n u x V P S主机和

X s h e l l设置密钥登录确保L i n u x V P S及服务器更加安全文章设置密钥登陆。 第三、禁用未使用的服务 为了确保我们的W e b服务器安全,建议你检查服务器上所有正在运行的服务和开放的端口,禁用我们不需要在服务器上的所有服务。 #要显示所有服务 s e r v i c e--s t a t u s-a l l #显示所有的端口规则 i p t a b l e s-L #显示所有的运行信息 (r e d h a t/c e n t o s/f e d o r a)c h k c o n f i g--l i s t #检查/e t c/i n i t.d是否有可疑脚本 l s /e t c/i n i t.d 第四、禁用不必要的A p a c h e模块 默认情况下,A p a c h e很多模块都开启的,但是有些并不需要使用,我们可以关闭和精简。比如以前有分享过的6步骤实现C e n t O S系统环境精简优化和4步骤实现D e b i a n系统环境精简优化可以有效的提高执行效率降低占用资源率。 A-U b u n t u/D e b i a n c a t/e t c/a p a c h e2/m o d s- e n a b l e d/*|g r e p-i l o a d m o d u l e

FreeBSD7.2下ports方式安装配置“Nginx0.8.24+PHP5.2.11(FastCGI)+ GD+Mysql5.1.40+系统优化+防ddos攻击”

版权声明 本文版权归作者所有,如其他个人、第三方网站或媒体报刊等需转载全文或节选,请注明原文链接: https://www.sodocs.net/doc/2c13725763.html,/manual/freebsd-nginx-php-mysql-ports.html 如果因此而给您带来麻烦,请您原谅,谢谢合作。 前言 ?版本:1.0 ?作者:lynn ?项目主页:https://www.sodocs.net/doc/2c13725763.html, ?个人主页:https://www.sodocs.net/doc/2c13725763.html, ?最后更新:2009-11-11(光棍节) 本文档是在FreeBSD7.2系统下,以ports系统为基础,所涉及软件全部是开源软件,版权以GPL为主,作为企业应用没有任何版权/法律问题。 编写本文的初衷,是给那些希望快速架设高性能、高负载Web服务系统而不想过多了解复杂的系统知识的网管/用户。 本文假定读者是在FreeBSD 7.2 平台上安装,并具有一定的Unix平台 / FreeBSD平台系统经验,懂得ports基本命令及常规的系统操作,如文件的删除,目录创建,改名,和vi编辑器的基本使用等。 源代码方式安装请参考(推荐): https://www.sodocs.net/doc/2c13725763.html,/manual/freebsd-nginx-php-mysql-source.html 目录 ?为什么要选择FreeBSD? ?为什么要选择Nginx? ?软件组成 ?安装FreeBSD7.2

?更新ports ?安装axel提高ports的安装速度 ?安装Mysql5.1.40 ?安装Nginx 安装pcre8.00 安装Nginx0.8.24 ?安装libxml2-2.7.6 ?安装GD 安装zlib1.2.3 安装libpng1.2.40 安装jpeg v7 安装freetype2.3.11 安装gd2.0.35 ?安装PHP 安装php5.2.11(FastCGI模式) ?测试 ?系统优化 ?防ddos攻击 ?结束语 ?ChangeLog 为什么要选择FreeBSD? 官方网站:https://www.sodocs.net/doc/2c13725763.html,中文网站:https://www.sodocs.net/doc/2c13725763.html,/zh_CN/ FreeBSD是一个优秀的unix操作系统,基于宽松的BSD协议,是完美的企业级操作系统,以重点突出性能和安全而闻名,行业领先的企业多年以来一直使用FreeBSD服务器。具有同所有其它开源软件操作系统竞争的高级性能。 1.Unix兼容性强 2.速度快

web系统性能优化

WEB站点性能优化 由于较少的接触WAP站点的建设,缺乏类似站点的建设经验,导致后期的性能问题成了影响项目交付的较严重的因素。 经过后面深入的了解,发现浏览器在访问网站的过程中,有很多地方可以进行性能优化处理。案例分析: 首先,我们先来了解一下客户端(这里指终端浏览器)访问服务器的全过程。 以火狐3.6.8浏览器为例(图例来自火狐浏览插件firebug截图) 从上图可以看出,该页面前后一共向后台发送了6次请求,即建立6次连接。 ●过程一:第1次请求,url地址请求服务器,获得相应的页面html,该次请求需要服务器相 应的业务逻辑处理然后生成页面,花费的时间稍长。 ●过程二:第2、3次请求,终端浏览器接收到请求的html页面后,需要请求页面引入的外部 资源(如css样式,js脚本,图片等),此时请求过程是并行连接。 ●过程三:第4、5、6次请求,终端浏览器接收到css样式资源后,需要为css中引入的其他外 部资源(图片较为常见)再次发送请求,所有的图片请求也是并行连接,与此同时也会进行页面的渲染工作。

另外,过程二、过程三中提到的并行连接,在各种不同浏览器中体现出来的能力也不一样。 下图显示了每个支持当前的浏览器为HTTP/1.1中以及HTTP/1.0的服务器最大连接数。 简化的浏览器响应时间的计算模型: 终端用户响应时间= 页面下载时间+ 服务器响应时间+ 浏览器处理及渲染时间 页面下载时间= 页面大小/ 网络带宽+ (网络延迟×HTTP 请求数)/ 并发度 所以如果我们可以通过监听互联网应用的网络传输行为得到页面大小、HTTP 请求数、并发度、服务器响应时间和浏览器处理及渲染时间,那么我们就可以推测这个应用在任意网络环境下的终端用户响应时间 优化思路 从上面公式中可以看出,网络带宽、网络延迟由网络环境决定,是系统不可控的,并发度是终端浏览器本身具备的能力,也是系统不可控的。余下的公式参数页面尺寸,HTTP请求数则是我们需要找寻的突破点,我们可以从如下几个方向着手。 1. 减少连接次数 终端浏览器响应的时间中,有80%用于下载各项内容。这部分时间包括下载页面中的图像、样式表、脚本、Flash等。通过减少页面中的元素可以减少HTTP请求的次数。这是提高网页速度的关键步骤。 合并文件 是通过把所有的脚本放到一个文件中来减少HTTP请求的方法,如可以简单地把所有的CSS 文件都放入一个样式表中。当脚本或者样式表在不同页面中使用时需要做不同的修改,这可能会相对麻烦点,但即便如此也要把这个方法作为改善页面性能的重要一步。 CSS Sprites 是减少图像请求的有效方法。把所有的背景图像都放到一个图片文件中,然后通过CSS的background-image和background-position属性来显示图片的不同部分;

用Apache Spark进行大数据处理——第一部分:入门介绍

用Apache Spark进行大数据处理——第一部分:入门介绍 什么是Spark Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一。与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势。 首先,Spark为我们提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求。 Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍。 Spark让开发者可以快速的用Java、Scala或Python编写程序。它本身自带了一个超过80个高阶操作符集合。而且还可以用它在shell中以交互式地查询数据。 除了Map和Reduce操作之外,它还支持SQL查询,流数据,机器学习和图表数据处理。开发者可以在一个数据管道用例中单独使用某一能力或者将这些能力结合在一起使用。 在这个Apache Spark文章系列的第一部分中,我们将了解到什么是Spark,它与典型的MapReduce解决方案的比较以及它如何为大数据处理提供了一套完整的工具。 Hadoop和Spark Hadoop这项大数据处理技术大概已有十年历史,而且被看做是首选的大数据集合处理的解决方案。MapReduce是一路计算的优秀解决方案,不过对于需要多路计算和算法的用例来说,并非十分高效。数据处理流程中的每一步都需要一个Map阶段和一个Reduce阶段,而且如果要利用这一解决方案,需要将所有用例都转换成MapReduce模式。 在下一步开始之前,上一步的作业输出数据必须要存储到分布式文件系统中。因此,复制和磁盘存储会导致这种方式速度变慢。另外Hadoop解决方案中通常会包含难以安装和管理的集群。而且为了处理不同的大数据用例,还需要集成多种不同的工具(如用于机器学习的Mahout和流数据处理的Storm)。 如果想要完成比较复杂的工作,就必须将一系列的MapReduce作业串联起来然后顺序执行这些作业。每一个作业都是高时延的,而且只有在前一个作业完成之后下一个作业才能开始启动。 而Spark则允许程序开发者使用有向无环图(DAG)开发复杂的多步数据管道。而且还支持跨有向无环图的内存数据共享,以便不同的作业可以共同处理同一个数据。

Apache性能优化

Apache性能优化 Apache性能优化 Posted on 2011-10-30 23:47 smallsilver 阅读(576) 评论(0) 编辑收藏Apache是目前Internet上使用最为广泛的Web 服务器。它具有比商业Web服务器不遑多让的功能与速度,同时安装与设置也十分简单,正是这些特性让它成为市场占有率最高的Web服务器软件。不过Apache安装简单,并不意味着简单地安装就可以适用于绝大多数应用环境,在高负荷的Web站点,Apache还需要进行调整、优化......优化方法Apache的配置文件是httpd.conf。Windows下该文件位于Apache安装目录的Conf子目录下,RedHat Enterprise Linux AS 3.0 Update 2位于/etc/httpd/conf。通过调整该文件的某些参数,可以优化Apache的运行效率。为了验证后文Apache参数的调整是否起作用,我们通常用Apache附带的ab(Apache Bench)对其进行压力测试。ab最常用的语法格式是这样的:ab -n XXX -c YYY -k http://hostname.port/path/filename其中:-n XXX: 表示最多进行XXX次测试。也就是下载filename文件XXX 次。-c YYY:

客户端并发连接个数。-k: 启用HTTP KeepAlive功能。默认不启用KeepAlive功能。比如我们要对http://hostname:port/https://www.sodocs.net/doc/2c13725763.html,下载10000次进行测试,并发访问为60个,启用HTTP KeepAlive功能,则访问指令为:ab -n 10000 -c 60 -k http://hostname:port/file.htm测试平台在本次优化过程中。笔者采用了两台电脑进行压力测试。其中一台为客户端,运行ab发送请求,另外一台为服务器,安装有Apache提供Web服务。1.服务器配置服务器端,笔者采用了较低端的配置。这样更容易通过ab测试看来调整参数后的效果:CPU: Intel Celeron 1.0GHz 内存:512MB SRAM 100MHz 硬盘:Maxtor 4D040H2 网卡:D-Link DFE 530TX服务器端笔者安装两种操作系统:Windows Server 2003 Enterprise Edition并升级到最新的Hotfix。Apache服务器版本为2.0.50;或者RedHat Enterprise Linux AS 3.0 Update 2。2.客户端配置为了使评

相关主题