精华内容
下载资源
问答
  • apache并发数调整

    2010-11-07 20:03:25
    复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链 接,而如果一旦连接上,在keeyalive 的存活时...

    转载   apache并发数调整 收藏

     

    手头有一个网站在线人数增多,访问时很慢。初步认为是服务器资源不足了,但经反 复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链 接,而如果一旦连接上,在keeyalive 的存活时间内(KeepAliveTimeout,默认5秒)都不用重新打开连接,因此解决的方法就是加大apache的最大连接数。

    1.在哪里设置?

    服务器的为FreeBSD 6.2 ,apache 2.24,使用默认配置(FreeBSD 默认不加载自定义MPM配置 ),默认最大连接数是250

    在/usr/local/etc/apache22/httpd.conf中加载MPM配置(去掉前面的注释):
    # Server-pool management (MPM specific)
    Include etc/apache22/extra/httpd-mpm.conf

    可见的MPM配置在/usr/local/etc/apache22/extra/httpd-mpm.conf,但里面根据httpd的工作模式分了很多块,哪一部才是当前httpd的工作模式呢?可通过执行 apachectl -l 来查看:
    Compiled in modules:
                  core.c
                  prefork.c
                  http_core.c
                  mod_so.c

    看到prefork 字眼,因此可见当前httpd应该是工作在prefork模式,prefork模式的默认配置是:
    <IfModule mpm_prefork_module>
                    StartServers                      5
                    MinSpareServers                   5
                    MaxSpareServers                  10
                    MaxClients                      150
                    MaxRequestsPerChild               0
    </IfModule>

    2.要加到多少?

    连接数理论上当然是支持越大越好,但要在服务器的能力范围内,这跟服务器的CPU、内存、带宽等都有关系。

    查看当前的连接数可以用:
    ps aux | grep httpd | wc -l

    或:
    pgrep httpd|wc -l

    计算httpd占用内存的平均数:
    ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'

    由于基本都是静态页面,CPU消耗很低,每进程占用内存也不算多,大约200K。

    服务器内存有2G,除去常规启动的服务大约需要500M(保守估计),还剩1.5G可用,那么理论上可以支持1.5*1024*1024*1024/200000 = 8053.06368

    约8K个进程,支持2W人同时访问应该是没有问题的(能保证其中8K的人访问很快,其他的可能需要等待1、2秒才能连上,而一旦连上就会很流畅)

    控制最大连接数的MaxClients ,因此可以尝试配置为:
    <IfModule mpm_prefork_module>
                    StartServers                      5
                    MinSpareServers                   5
                    MaxSpareServers                  10
                    ServerLimit                    5500
                    MaxClients                     5000
                    MaxRequestsPerChild               100
    </IfModule>

    注意,MaxClients默认最大为250,若要超过这个值就要显式设置ServerLimit,且ServerLimit要放在MaxClients之前,值要不小于MaxClients,不然重启httpd时会有提示。

    重启httpd后,通过反复执行pgrep httpd|wc -l 来观察连接数,可以看到连接数在达到MaxClients的设值后不再增加,但此时访问网站也很流畅,那就不用贪心再设置更高的值了,不然以后如果网站访 问突增不小心就会耗光服务器内存,可根据以后访问压力趋势及内存的占用变化再逐渐调整,直到找到一个最优的设置值。

    (MaxRequestsPerChild不能设置为0,可能会因内存泄露导致服务器崩溃)

    更佳最大值计算的公式

    apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2
    apache_max_process = apache_max_process_with_good_perfermance * 1.5

    参考:

    apache的参数设置

    Apache 2.0性能优化—MPM的选择与配置

    如何避免apache的httpd进程占用比较多的内存

    对apache中并发控制参数prefork理解和调优

    附:

    实时检测HTTPD连接数:
    watch -n 1 -d "pgrep httpd|wc -l"

    展开全文
  • apache并发数调整

    2014-04-10 20:51:38
    初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链接,而如果一旦连接上,在...

    手头有一个网站在线人数增多,访问时很慢。初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链接,而如果一旦连接上,在keeyalive的存活时间内(KeepAliveTimeout,默认5秒)都不用重新打开连接,因此解决的方法就是加大apache的最大连接数。

    1.在哪里设置?

    服务器的为FreeBSD 6.2 ,apache 2.24,使用默认配置(FreeBSD 默认不加载自定义MPM配置),默认最大连接数是250

    在/usr/local/etc/apache22/httpd.conf中加载MPM配置(去掉前面的注释):
    # Server-pool management (MPM specific)
    Include etc/apache22/extra/httpd-mpm.conf

    可见的MPM配置在/usr/local/etc/apache22/extra/httpd-mpm.conf,但里面根据httpd的工作模式分了很多块,哪一部才是当前httpd的工作模式呢?可通过执行 apachectl -l 来查看:
    Compiled in modules:
                  core.c
                  prefork.c
                  http_core.c
                  mod_so.c

    看到prefork 字眼,因此可见当前httpd应该是工作在prefork模式,prefork模式的默认配置是:
    <IfModule mpm_prefork_module>
                    StartServers                      5
                    MinSpareServers                   5
                    MaxSpareServers                  10
                    MaxClients                      150
                    MaxRequestsPerChild               0
    </IfModule>

    2.要加到多少?

    连接数理论上当然是支持越大越好,但要在服务器的能力范围内,这跟服务器的CPU、内存、带宽等都有关系。

    查看当前的连接数可以用:
    ps aux | grep httpd | wc -l

    或:
    pgrep httpd|wc -l

    计算httpd占用内存的平均数:
    ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'

    由于基本都是静态页面,CPU消耗很低,每进程占用内存也不算多,大约200K。

    服务器内存有2G,除去常规启动的服务大约需要500M(保守估计),还剩1.5G可用,那么理论上可以支持1.5*1024*1024*1024/200000 = 8053.06368

    约8K个进程,支持2W人同时访问应该是没有问题的(能保证其中8K的人访问很快,其他的可能需要等待1、2秒才能连上,而一旦连上就会很流畅)

    控制最大连接数的MaxClients ,因此可以尝试配置为:
    <IfModule mpm_prefork_module>
                    StartServers                      5
                    MinSpareServers                   5
                    MaxSpareServers                  10
                    ServerLimit                    5500
                    MaxClients                     5000
                    MaxRequestsPerChild               100
    </IfModule>

    注意,MaxClients默认最大为250,若要超过这个值就要显式设置ServerLimit,且ServerLimit要放在MaxClients之前,值要不小于MaxClients,不然重启httpd时会有提示。

    重启httpd后,通过反复执行pgrep httpd|wc -l来观察连接数,可以看到连接数在达到MaxClients的设值后不再增加,但此时访问网站也很流畅,那就不用贪心再设置更高的值了,不然以后如果网站访问突增不小心就会耗光服务器内存,可根据以后访问压力趋势及内存的占用变化再逐渐调整,直到找到一个最优的设置值。

    (MaxRequestsPerChild不能设置为0,可能会因内存泄露导致服务器崩溃)

    更佳最大值计算的公式

    apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2
    apache_max_process = apache_max_process_with_good_perfermance * 1.5

     

    参考:

    apache的参数设置

    Apache 2.0性能优化—MPM的选择与配置

    如何避免apache的httpd进程占用比较多的内存

    对apache中并发控制参数prefork理解和调优

     

     

    附:

    实时检测HTTPD连接数:
    watch -n 1 -d "pgrep httpd|wc -l"

    展开全文
  • apache并发数的问题

    千次阅读 2014-03-13 14:59:34
    初步认为是服务器资源不足了,但经反 复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链 接,而如果一旦连接上,在...

    手头有一个网站在线人数增多,访问时很慢。初步认为是服务器资源不足了,但经反 复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链 接,而如果一旦连接上,在keeyalive 的存活时间内(KeepAliveTimeout,默认5秒)都不用重新打开连接,因此解决的方法就是加大apache的最大连接数。

    1.在哪里设置?

    服务器的为linux ,apache 2.4,apache默认最大连接数是250

    在/usr/local/etc/apache/httpd.conf中加载MPM配置(去掉前面的注释):
    # Server-pool management (MPM specific)
    Include etc/apache/extra/httpd-mpm.conf

    可见的MPM配置在/usr/local/etc/apache/extra/httpd-mpm.conf,但里面根据httpd的工作模式分了很多块,哪一部才是当前httpd的工作模式呢?可通过执行 apachectl -l 来查看:
    Compiled in modules:
                  core.c
                  prefork.c
                  http_core.c
                  mod_so.c

    看到prefork 字眼,因此可见当前httpd应该是工作在prefork模式,prefork模式的默认配置是:
    <IfModule mpm_prefork_module>
                    StartServers                      5
                    MinSpareServers                   5
                    MaxSpareServers                  10
                    MaxClients                      150
                    MaxRequestsPerChild               0
    </IfModule>

    2.要加到多少?

    连接数理论上当然是支持越大越好,但要在服务器的能力范围内,这跟服务器的CPU、内存、带宽等都有关系。

    查看当前的连接数可以用:
    ps aux | grep httpd | wc -l

    或:
    pgrep httpd|wc -l

    计算httpd占用内存的平均数:
    ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'

    由于基本都是静态页面,CPU消耗很低,每进程占用内存也不算多,大约200K。

    服务器内存有4G,除去常规启动的服务大约需要500M(保守估计),还剩3.5G可用,那么理论上可以支持3.5*1024*1024*1024/200000 = 18788

    约1.8W个进程,支持2W人同时访问应该是没有问题的(能保证其中1.8W的人访问很快,其他的可能需要等待1、2秒才能连上,而一旦连上就会很流畅)

    控制最大连接数的MaxClients ,因此可以尝试配置为:
    <IfModule mpm_prefork_module>
                    StartServers                      5
                    MinSpareServers                   5
                    MaxSpareServers                  10
                    ServerLimit                    5500
                    MaxClients                     5000
                    MaxRequestsPerChild               100
    </IfModule>

    注意,MaxClients默认最大为250,若要超过这个值就要显式设置ServerLimit,且ServerLimit要放在MaxClients之前,值要不小于MaxClients,不然重启httpd时会有提示。

    重启httpd后,通过反复执行pgrep httpd|wc -l 来观察连接数,可以看到连接数在达到MaxClients的设值后不再增加,但此时访问网站也很流畅,那就不用贪心再设置更高的值了,不然以后如果网站访 问突增不小心就会耗光服务器内存,可根据以后访问压力趋势及内存的占用变化再逐渐调整,直到找到一个最优的设置值。

    (MaxRequestsPerChild不能设置为0,可能会因内存泄露导致服务器崩溃)

    更佳最大值计算的公式

    apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2
    apache_max_process = apache_max_process_with_good_perfermance * 1.5

    展开全文
  • 初步认为是服务器资源不足了,但经反 复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链 接,而如果一

    从配置完服务器之后,一直慢得我想死,昨天突然我想到是不是并发数的原因,刚才我修改了一个并发数,

     

    apache并发数调整


    手头有一个网站在线人数增多,访问时很慢。初步认为是服务器资源不足了,但经反 复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链 接,而如果一旦连接上,在keeyalive 的存活时间内(KeepAliveTimeout,默认5秒)都不用重新打开连接,因此解决的方法就是加大apache的最大连接数。

    1.在哪里设置?

    服务器的为FreeBSD 6.2 ,apache 2.24,使用默认配置(FreeBSD 默认不加载自定义MPM配置),默认最大连接数是250

    在/usr/local/etc/apache22/httpd.conf中加载MPM配置(去掉前面的注释):
    # Server-pool management (MPM specific)
    Include etc/apache22/extra/httpd-mpm.conf

    可见的MPM配置在/usr/local/etc/apache22/extra/httpd-mpm.conf(我的路径是:D:\ApaServ\Apache24\conf\extra),但里面根据httpd的工作模式分了很多块,哪一部才是当前httpd的工作模式呢?可通过执行 apachectl -l 来查看:
    Compiled in modules:
                  core.c
                  prefork.c
                  http_core.c
                  mod_so.c

    看到prefork 字眼,因此可见当前httpd应该是工作在prefork模式,prefork模式的默认配置是:
    <IfModule mpm_prefork_module>
                    StartServers                      5
                    MinSpareServers                   5
                    MaxSpareServers                  10
                    MaxClients                      150
                    MaxRequestsPerChild               0
    </IfModule>

    2.要加到多少?

    连接数理论上当然是支持越大越好,但要在服务器的能力范围内,这跟服务器的CPU、内存、带宽等都有关系。

    查看当前的连接数可以用:
    ps aux | grep httpd | wc -l

    或:
    pgrep httpd|wc -l

    计算httpd占用内存的平均数:
    ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'

    由于基本都是静态页面,CPU消耗很低,每进程占用内存也不算多,大约200K。

    服务器内存有2G,除去常规启动的服务大约需要500M(保守估计),还剩1.5G可用,那么理论上可以支持1.5*1024*1024*1024/200000 = 8053.06368

    约8K个进程,支持2W人同时访问应该是没有问题的(能保证其中8K的人访问很快,其他的可能需要等待1、2秒才能连上,而一旦连上就会很流畅)

    控制最大连接数的MaxClients ,因此可以尝试配置为:
    <IfModule mpm_prefork_module>
                    StartServers                      5
                    MinSpareServers                   5
                    MaxSpareServers                  10
                    ServerLimit                    5500
                    MaxClients                     5000
                    MaxRequestsPerChild               100
    </IfModule>

    注意,MaxClients默认最大为250,若要超过这个值就要显式设置ServerLimit,且ServerLimit要放在MaxClients之前,值要不小于MaxClients,不然重启httpd时会有提示。

    重启httpd后,通过反复执行pgrep httpd|wc -l 来观察连接数,可以看到连接数在达到MaxClients的设值后不再增加,但此时访问网站也很流畅,那就不用贪心再设置更高的值了,不然以后如果网站访 问突增不小心就会耗光服务器内存,可根据以后访问压力趋势及内存的占用变化再逐渐调整,直到找到一个最优的设置值。

    (MaxRequestsPerChild不能设置为0,可能会因内存泄露导致服务器崩溃)

    更佳最大值计算的公式

    apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) * 2
    apache_max_process = apache_max_process_with_good_perfermance * 1.5

     

    参考:

    apache的参数设置

    Apache 2.0性能优化—MPM的选择与配置

    如何避免apache的httpd进程占用比较多的内存

    对apache中并发控制参数prefork理解和调优

     


    展开全文
  • 初步认为是服务器资源不足了,但经反 复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能排队等待有空闲的链 接,而如果一旦连接上,在...
  • 概述在业务数据库性能问题诊断中,如果发现一个业务性能很差跟某个SQL有关,应用连接池几乎被该SQL占,同时数据库服务器上也不堪重负。此时情况很紧急,业务改SQL重发布已经来不及了,运维能选择的操作不多。如...
  • 并发队列

    2020-10-14 10:14:49
    方法介绍:put,往队列中添加一个,如果队列已经满了,就堵塞住; take 在队列中拿出一个,如果队列是空的,就堵塞住; add 往队列中添加一个,如果队列已经满了,会抛出异常 remove 往队列中移除一个,如果...
  • 极通问题汇总

    千次阅读 2011-06-04 00:30:00
    极通软件登陆后,点击发布的程序图标时提示“找不到应用服务器”解决:(1) 软件的应用并发数已经满了,如果还需增加并发数,请向益华注册号管理部门申请并发数。(2) 系统服务有问题,将服务中的EWEBS Session...
  • 2)、如果核心线程池已经满,则把任务准备添加到工作队列,判断工作队列是否已经满,如果没有满添加到工作队列等待线程来取;工作中的线程完成工作后会从工作队列取新的任务进行执行; 3)、如果工作队列满了
  • (2)确保某个服务在其所依赖的所有其他服务都已经启动之后才启动 (3)等待知道某个操作的所有参与者都就绪再继续执行 CountDownLatch:可以使一个或多个线程等待一组事件发生 FutureTask ...
  • 进程池Pool 当需要创建的子进程数量不多时,可以直接利用multiprocessing中的...但如果池中的进程数已经达到指定的最大值,那么该请求就会等待,直到池中有进程结束,才会用之前的进程来执行新的任务,请看下面的实例:
  • 在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多...但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来它。这里有一个简单的例子: #
  • 等待队列也已经满了,再也塞不下新任务了。同时线程池中的max线程也达到了,无法继续为新任务服务。这时候我们就需要拒绝策略机制合理的解决这个问题。 1.2 JDK内置的拒绝策略 1.2.1 AbortPolicy ...
  • 已经基于这个开发多个物联网相关实际应用 启动部分代码 //新建服务TcpSvr svr = new TcpSvr(6000, 50, new Coder(Coder.EncodingMothord.Unicode)); this.SetText("创建tcp服务成功,端口:6000"+" 最大连接:...
  • ##当snapshot时出现错误无法继续时,是否阻塞客户端“变更操作”,“错误”可能因为磁盘已/磁盘故障/OS级别异常等 stop-writes-on-bgsave-error yes ##是否启用rdb文件压缩,默认为“yes”,压缩往往意味着...
  • 原来安装好nginx之后,默认最大的并发数为1024,如果你的网站访问量过大,已经远远超过1024这个并发数,那你就要修改worker_connecions这个值 ,这个值越大,并发数也有就大。当然,你一定要按照你自己的实际情况而...
  • 原来安装好nginx之后,默认最大的并发数为1024,如果你的网站访问量过大,已经远远超过1024这个并发数,那你就要修改worker_connecions这个值 ,这个值越大,并发数也有就大。当然,你一定要按照你自己的实际情况而...
  • 查看计算机管理-共享文件夹-会话后发现里面已经有10个会话,这是因为XP Pro和2K Pro一样都将网络并发连接数限制在10,并发数满了以后新用户就无法在连接到这台计算机打印。   在CMD下使用net config s
  • 查看计算机管理-共享文件夹-会话后发现里面已经有10个会话,这是因为XP Pro和2K Pro一样都将网络并发连接数限制在10,并发数满了以后新用户就无法在连接到这台计算机打印。 在CMD下使用net config...
  • 分析:从报错日志分析无果,数据库连接日志已经满了。查配置文件数据库空闲时间60秒,最大连接100 两方面分析原因: 1.数据库性能问题,超过数据库处理能力。 2.程序问题,并发量太大。导致读写超时。 解决方法: ...
  • 4 那么在请求刚来,线程池已经,业务处理的时间又大于2秒 5 2秒内后续请求没有被处理完成就会出现timeout,因为请求超时了 调优从哪里入手: 系统架构 硬件配置 中间件 存储 如果是Java的话jvm的参数设置 读写...
  • too many connection 的本质错误就是无法建立新的连接了,因为客户端与mysql建立的连接数已经满了,那是达到多少了,可以直接看mysql的max_connections参数,系统默认151 。都有哪些连接命令show processlist去查看...
  • acquire():获取,如果已经满了,就等待 release():将当前的信号量释放,然后将计数+1,再唤醒等待的线程 使用示例 import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; public class

空空如也

空空如也

1 2 3
收藏数 48
精华内容 19
关键字:

并发数已经满