Windows下 PHP5 + MySQL5 + Apache2 + ZendFrame Work服务器性能
============================================================现在这个服务器到了在线人数1000左右,CPU就占用很高
网站访问很慢不知道是 Apache,Mysql 没配置好还是其他原因或者是 Windows 下Apache和PHP的性能就这样,还是我们没配好当然程序也可能存在原因。有一段时间总是围绕这个配置
ThreadsPerChild 250
MaxRequestsPerChild 25000MySQL也进行了一些配置,开始效果好点,但是现在 900-1300个人在线学习也不行了不知道大家有什么解决方案每, Linux下就算了,因为一些特殊原因,视频等一些东西也在 服务器上,而且现在大家对Linux也不是很熟悉。

解决方案 »

  1.   

    楼主,很显然,在windows下运行这么大的载荷量,肯定慢啦!Linux系统和windows内核运行方式不一样,所以用Linux来运行这点人是不会慢的;当然,如果你不想用linux服务器,还是用windows服务器,那就只能把你的内存扩大了,这样才能让它的运算速度加快
      

  2.   

    服务器配置:
    2.5G 4核CPU
    8G内存150M独享带宽
    上面有 media service 点播
      

  3.   

    如果你不想换操作系统,如果你只想用这一台服务器。问题很难解决吧可以尝试用nginx试下,不过windows下面的性能估计也不会太理想。
      

  4.   

    MySQL的优化做了哪些工作呢?
      

  5.   

    资料太少了首先要收集每个部份对CPU, RAM, IO 的负载比例
    才能针对性的优化
      

  6.   

    试一下nginx,听说nginx能更好的处理高访问量
      

  7.   

    你可优化数据库;
    比如 创建视图 设置MySQL的缓存配置等等。。
    还有优化程序:
    可以用ob_start()函数:打开输出缓冲区.    函数格式 void ob_start(void) 
        说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。Flush:刷新缓冲区的内容,输出。    函数格式:flush() 
        说明:这个函数经常使用,效率很高。ob_get_contents :返回内部缓冲区的内容。    函数格式:string ob_get_contents(void) 
        说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE.ob_get_length:返回内部缓冲区的长度。    函数格式:int ob_get_length(void) 
        说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活,则返回 FALSE.ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区    函数格式:void ob_end_clean(void) 
        说明:这个函数不会输出内部缓冲区的内容而是把它删除ob_end_flush:发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区    函数格式:void ob_end_flush(void) 
        说明:这个函数发送输出缓冲区的内容(如果有的话)ob_implicit_flush:打开或关闭绝对刷新    函数格式:void ob_implicit_flush ([int flag]) 
        说明:默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()  多用以上的函数
    如果是程序问题换什么系统都一样,windows不行Linux也不一定行。。
      

  8.   

    说的是,差距很大啊主要半路出家,对 Apache PHP,MySQL性能优化不是很熟悉