昨晚網站突然被空間商暫停了大意是說CPU超用了。內存超用了。PHP中主要用了數組來保存從數據庫中取得的廣告代碼。然後在不同的位置調用這個數據值還有一個是file_get_contents一打開就會讀取來源網頁標題請各位有經驗的大哥大姐們告訴我這兩個東西有CPU與內存是都比較大還是某個比較大?
關於隨機廣告問題另開一貼!

解决方案 »

  1.   

    对CPU:需要等待I/O完成,如果是linux用top命令可以看到cpu实际占用率的很大一部分都在进行wa (等待IO),而且如果文件过大,会发生内存缺页等情况,造成CPU占用额外增加。
    对内存:如果文件体积很大,从头到尾读入必然会占用内存,即使file_get_contents使用了内存映射技术,如果文件很小那么影响可能不大。
      

  2.   

    是 linux主機,TOP命令不會用,我先查查 file_get_contents沒有使用内存映射技术,被GET網頁一般都不過十來K
      

  3.   

    就是這樣,我就用了這兩東西。就來信說CPU超10% 什麼MEM達到20%大大你覺得在同一頁面用數組保存四組廣告代碼好還是查詢四次數據好?
      

  4.   

    广告代码部分对性能的影响应该很小。“file_get_contents一打開就會讀取來源網頁標題”
    我推测是这个的问题。
      

  5.   

    你的意思是使用了file_get_contents下载$_SERVER['HTTP_REFERER']页面?
      

  6.   

    如果一个脚本中用多个数组,且数组较大
    使用后可以手动unset数组释放资源。
      

  7.   


    對對是這樣的。我不清楚是file_get_contents費了資源還是我數據用太多了
      

  8.   


    一個頁面只用一個數組,但幾乎所有的廣告都是這麼搞的。
    剛才我發代碼在http://topic.csdn.net/u/20111103/12/5d1a7b74-c285-4586-8ed5-934312a808fb.html?32358請大大幫忙一起指正下!
      

  9.   


    file_get_contents 必须设置个超时的时间
      

  10.   

    尤其是当REFERER所在的服务器网络链接可靠性不确定的时候,file_get_contents访问http资源相当影响性能。。
      

  11.   

    这种方式不建议采用,这等于是处理用户请求的时候又打开了一个新的HTTP请求并且要阻塞等待返回。
    如果目标服务器在同一数据中心或者访问速度稳定,那么可以接受。如果不是,对服务器的资源消耗相当大。
      

  12.   


    就是相當於自助流量交換的東西,所有來路都用file_get_contents提取了一次它的源碼。但沒有加上提到的超時!