×

windows提高apache并发数

windows提高apache并发数(apache高并发设置)

admin admin 发表于2023-03-24 17:14:09 浏览65 评论0

抢沙发发表评论

本文目录一览:

怎样提高并发能力?

从服务器角度,实际并发用户数的可以理解为服务器当前维护的代表不同用户的文件描述符总数,也就是并发连接数。服务器一般会限制同时服务的最多用户数,比如apache的MaxClents参数。

这里再深入一下,对于服务器来说,服务器希望支持高吞吐率,对于用户来说,用户只希望等待最少的时间,显然,双方不能满足,所以双方利益的平衡点,就是我们希望的最大并发用户数。

如何配置apache最大的并发数

1.首先确认apache的mpm方式 cmdhttpd.exe -l 可以看到是什么模式了 这里就看mpm_xxx.c这个xxx就是那个了 2.修改httpd.conf文件 搜索mpm,找到 Server-pool management(MPM specific) 去掉# Include conf/extra/httpd-mpm.conf 3.修改conf/extra/httpd-mpm.conf文件 prefork模式就修改这里 IfModule mpm_prefork_module StartServers 5 # 预先开启的进程 MinSpareServers 5 # 最小预留5个 MaxSpareServers 10 # 最大留10 MaxClients 150 # 最多并发多少个 * MaxRequestsPerChild 0 # 最多请求多少次 0不限制 /IfModule winnt模式 IfModule mpm_winnt_module ThreadsPerChild 150 # 最大并发数 * MaxRequestsPerChild 0 # 最多处理多少次请求 0不限制 /IfModule 修改后面有*的那个字段的数值然后重新启动apache 说明:配置到多大,不一定就可能支撑这么大的并发,考虑到本身apache所在的机器硬件性能(如:内存,CPU,硬盘IO) 系统是linux/unix,配置perfork IfModule mpm_prefork_module StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 *#并发量 MaxRequestsPerChild 0 /IfModule 给大家一个合理的建议配置,对大部份网站,中型网站配置 IfModule mpm_prefork_module StartServers 5 # 预先启动 MinSpareServers 5 MaxSpareServers 10 # 最大空闲进程 ServerLimit 1500 *# 用于修改apache编程参数 MaxClients 1000 *# 最大并发数 MaxRequestsPerChild 0 /IfModule 注:apache2.2以后才有的ServerLimit这个参数,其中ServerLimit数值大于MaxClients数值 如果网站的pv值 百万 ServerLimit 2500 *# 用于修改apache编程参数 MaxClients 2000 *# 最大并发数 注:调到这就是极限了,要是网站访问还是大,哪就要增加apache服务器了-windows提高apache并发数

如何提高并发处理速度

大数据并发处理解决方案:

1、HTML静态化

效率最高、消耗最小的就是纯静态化的html页面,所以尽可能使网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,无法全部手动去挨个实现,于是出现了常见的信息发布系统CMS,像常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。 -windows提高apache并发数

2、图片服务器分离

对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的图片服务器,甚至很多台图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃,在应用服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支持,尽可能少的LoadModule,保证更高的系统消耗和执行效率。 这一实现起来是比较容易的一现,如果服务器集群操作起来更方便,如果是独立的服务器,新手可能出现上传图片只能在服务器本地的情况下,可以在令一台服务器设置的IIS采用网络路径来实现图片服务器,即不用改变程序,又能提高性能,但对于服务器本身的IO处理性能是没有任何的改变。-windows提高apache并发数

3、数据库集群和库表散列

大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是需要使用数据库集群或者库表散列。

4、缓存

缓存一词搞技术的都接触过,很多地方用到缓存。网站架构和网站开发中的缓存也是非常重要。架构方面的缓存,对Apache比较熟悉的人都能知道Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。 -windows提高apache并发数

网站程序开发方面的缓存,Linux上提供的Memory Cache是常用的缓存接口,可以在web开发中使用,比如用Java开发的时候就可以调用MemoryCache对一些数据进行缓存和通讯共享,一些大型社区使用了这样的架构。另外,在使用web语言开发的时候,各种语言基本都有自己的缓存模块和方法,PHP有Pear的Cache模块,Java就更多了,.net不是很熟悉,相信也肯定有。 -windows提高apache并发数

5、镜像

镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建镜像站点,数据进行定时更新或者实时更新。在镜像的细节技术方面,这里不阐述太深,有很多专业的现成的解决架构和产品可选。也有廉价的通过软件实现的思路,比如Linux上的rsync等工具。 -windows提高apache并发数

6、负载均衡

负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法。 负载均衡技术发展了多年,有很多专业的服务提供商和产品可以选择。

硬件四层交换

第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的应用服务器进行处理。 第四层交换功能就象是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。 -windows提高apache并发数

在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo中国当初接近2000台服务器使用了三四台Alteon就搞定了。-windows提高apache并发数

如何优化windows+apache 性能的具体方法

Windows系统下如果优化Apache的性能主要是通过专门针对Windows NT优化的MPM(多路处理模块)-mpm_winnt.c来优化的,它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。-windows提高apache并发数

mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache。

ThreadsPerChild

这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。-windows提高apache并发数

MaxRequestsPerChild

该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0.

官方参考手册中不建议设置为0, 主要基于两点考虑: (1) 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存; (2) 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

因此这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为0或很大的数字,否则设置一个小的数值。需要说明的是,如果这个值设置的太小的话会造成Apache频繁重启,在日志文件中会看到如下的文字:Process exiting because it reached MaxRequestsPerChild. Signaling the parent,这样一来降低了Apache的总体性能。-windows提高apache并发数

另外,可以通过查看Apache提供的server-status(状态报告)来验证当前所设置数值是否合理,在httpd.conf文件中做如下设置来打开它:

# 首先需要加载mod_status模块

LoadModule status_module modules/mod_status.so

# 然后设置访问的地址

Location /server-status

SetHandler server-status

Order deny,allow

Deny from all

# 如果限制某个IP访问则设置为 Allow from 192.168.1.1

Allow from all

/Location

综合来说,因为Windows NT下Apache只能启动父子两个进程,因此只能通过增大单个进程的线程数以及单个进程能够处理的最大请求数来进行优化。其他优化的参数同Linux系统下是一样的,大家可以加以参考。下面针对上述两个参数给出一个建议的设置:-windows提高apache并发数

IfModule mpm_winnt.c

ThreadsPerChild 250

MaxRequestsPerChild 5000

/IfModule

用上面的方法优化了一下windows+apache+php后,发现响应速度快了很多,一般最多只延迟3秒左右,但对于美国的主机来说应该是个正常的状态吧!

win下Apache怎么修改并发连接数

可以使用以下参数配置Apache的并发连接数:

IfModule prefork.c

StartServers 8

MinSpareServers 5

MaxSpareServers 20

MaxClients 150

MaxRequestsPerChild 1000

/IfModule

IfModule worker.c

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

/IfModule

IfModule mpm_winnt.c

ThreadsPerChild 250

MaxRequestsPerChild 0

/IfModule

对于Windows系统,缺省会使用mpm_winnt,配置中有用的是第三段,即:

IfModule mpm_winnt.c

ThreadsPerChild 250

MaxRequestsPerChild 0

/IfModule

具体含义可参考Apache的官方文档: