之前使用windows的iis作为解释器,速度很慢,后来改用apache,速度上有了一定的提升,但是访问人数达到150左右,速度又明显变慢了,200以上就几乎打不开。但是查看任务管理器,cpu占有率一般在10%左右,2G的内存,用了不到1G,而带宽也未满,所以服务器的性能并没有发挥出来,但为什么会访问这么慢?
也怀疑是受到了在线人数的限制,但是也按照网上的资料修改了maxclients和serverlimit(均为1000),但未见效果。
目前httpd进程的内存大概为80兆,mysql-nt进程的内存大概为90兆。不过感觉mysql似乎应该占用更多内存,光是一个key_buffer_size就配置了256兆,query_cache_size配置了64兆。不知道是不起作用,还是在mysql-nt进程中不体现。
感觉以目前机器的配置,在线人数2、3百绝对不应该出现这样的问题,不知道是否有高手知道原因?

解决方案 »

  1.   

    服务器现在是windows还是linux?
      

  2.   

    有没有频繁读取硬盘?
    另外Apache配置一下达到多少连接就自动创建新的进程 不要用那个默认的0无限制
      

  3.   


    系统是windows server 2003
      

  4.   


    系统是windows server 2003 enterprise,这样就不需要设置了吧?
      

  5.   


    因为是远程操作,不能直接看到硬盘读取情况,是不是可以通过什么参数查询?
    达到多少连接就自动创建新的进程,这个具体是哪个参数?
    以下是配置片段
    <IfModule mpm_prefork_module>
                    StartServers                      10
                    MinSpareServers                   10
                    MaxSpareServers                  15
                    ServerLimit                     1000
                    MaxClients                      1000
                    MaxRequestsPerChild               0
    </IfModule>
      

  6.   

    window系统需要配置
    <IfModule mpm_winnt_module>
        ThreadsPerChild      1500
        MaxRequestsPerChild    0
    </IfModule>
    这个配置节把?
      

  7.   

    MaxRequestsPerChild   100
      

  8.   

    <IfModule mpm_winnt_module>
        ThreadsPerChild      15000
        MaxRequestsPerChild    10000
    </IfModule>
      

  9.   

    我想应该是带宽或者网速问题。CPU占用不高,说明这个服务器运行得可以,程序跑得不慢。剩下的就是网速问题了。