作者 主題: Squid的日志中出现queue overload  (閱讀 4757 次)

0 會員 與 1 訪客 正在閱讀本文。

fine102

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
Squid的日志中出现queue overload
« 於: 2008-12-02 15:10 »
   
我的squid版本是2.6.STABLE18
[squid@gd sbin]$ ./squid -v
Squid Cache: Version 2.6.STABLE18

我在一台生產機器上,squid編譯加了--disable-internal-dns來使用外部dns,
而在squid配置中也添加了dns_children 80
可以看到squid的dnsserver進程數為80
[squid@gd etc]$ ps x |grep dnsserver |grep -v grep |wc -l
80

可是在cache.log中差不多每天都有出現以下的日誌,

2008/10/2623:50:28| dnsSubmit: queue overload, rejecting www.china-designer.com
2008/10/26 23:50:28| dnsSubmit: queueoverload, rejecting zntx.org.cn
2008/10/26 23:50:28| dnsSubmit: queue overload, rejecting fywap.net

google後找到相關信息
Thismeans that you are using external dnsserverprocesses for lookups, and all processes arebusy, and Squid's pending queue is full. Each dnsserver program can only handleone request at a time. When all dnsserver processes are busy, Squid queues uprequests, but only to a certain point.

Toalleviate this condition, you need to either (1) increase the number ofdnsserver processes by changing the value for dns_children in your config file,or (2) switch to using Squid's internal DNSclient code.

Notethat in some versions, Squid limits dns_children to 32. To increase it beyond that value, you would have to editthe source code.
   
這裡說某些版本只支持32個進程數,可是我ps x能出現80個的話,那這80個dnsserver都有在處理dns查詢.

之後,我嘗試把dns_children設置200,通過幾天的觀察後,該日誌出現基本沒有了,但是今天再次查看cache.log日誌卻又出來了二百多條
[squid@gd logs]$ grep 'queue overload' cache.log |wc -l

202
[squid@gd logs]$ grep 'queue overload' cache.log |more
2008/12/02 00:11:53| dnsSubmit: queue overload, rejecting lh6.ggpht.com
2008/12/02 00:11:53| dnsSubmit: queue overload, rejecting lh4.ggpht.com
2008/12/02 00:11:53| dnsSubmit: queue overload, rejecting lh5.ggpht.com
2008/12/02 00:11:53| dnsSubmit: queue overload, rejecting lh3.ggpht.com
2008/12/02 00:11:53| dnsSubmit: queue overload, rejecting mmmcr.com

   
請問各位同仁有沒有碰到過相關的問題.
你們的編譯時是否使用--disable-internal-dns
如果使用外部dns,dns_children這設置多少合適.


請大大提提意見. ;)
« 上次編輯: 2008-12-02 16:09 由 fine102 »

fine102

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
回覆: Squid的日志中出现queue overload
« 回覆 #1 於: 2008-12-02 18:00 »
 ::)大大们,是不是我描述的不够清晰

slime

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
回覆: Squid的日志中出现queue overload
« 回覆 #2 於: 2008-12-02 18:10 »
::)大大们,是不是我描述的不够清晰

描述應該夠清楚, 也許剛好其他人沒有用過這參數, 無法幫忙確認問題.
如果是我, 會先考慮取消 --disable-internal-dns 這個參數再試試看.
(或者可以描述一下什麼環境會考慮加上這參數)
冷笑話: 我的 IP 是 127.0.0.1

fine102

  • 可愛的小學生
  • *
  • 文章數: 25
    • 檢視個人資料
回覆: Squid的日志中出现queue overload
« 回覆 #3 於: 2008-12-02 19:22 »
::)大大们,是不是我描述的不够清晰

描述應該夠清楚, 也許剛好其他人沒有用過這參數, 無法幫忙確認問題.
如果是我, 會先考慮取消 --disable-internal-dns 這個參數再試試看.
(或者可以描述一下什麼環境會考慮加上這參數)

謝謝slime大大回覆,因為生產環境中不是一台不是兩台,而是三四百台已經編譯成這種來安裝了,所以想知道在關閉內部DNS的前提下,dns_children應該設置多少才合適,已經設置成200了.還出現
2008/10/26 23:50:28| dnsSubmit: queue overload, rejecting www.china-designer.com
這樣的日誌.

slime

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
回覆: Squid的日志中出现queue overload
« 回覆 #4 於: 2008-12-02 19:38 »
您的資料有回答嘍 :)

引用
Toalleviate this condition, you need to either (1) increase the number ofdnsserver processes by changing the value for dns_children in your config file,or (2) switch to using Squid's internal DNSclient code.

(1) 增加查詢值
(2) (切換成)使用內建的 DNSclient

而您試過方法 1 了, 所以再下來就要試方法 2 , 或者先考慮一下, 當初不使用內建的 DNSclient 原因,
如果那原因很重要, 再改成其他 proxy 軟體, 或者用其他方法(也許每台電腦再加裝 DNS Cache )改善了.
冷笑話: 我的 IP 是 127.0.0.1

acty

  • 鑽研的研究生
  • *****
  • 文章數: 694
    • 檢視個人資料
    • UNIX 管理者的學習紀錄
回覆: Squid的日志中出现queue overload
« 回覆 #5 於: 2008-12-06 21:10 »
你的 dns_children 200會不會太大了

先問一下你機器規格如何 多少 cpu 多少 ram 平常一台使用者多少

記憶體有沒有吃到 swap, 如果有表示 squid 裡面有些設定太大 吃掉太多 memory

如果用到 swap 速度就會 Down 的很快, 除非不得已  不建議搞到 swap 都用到

另外  squid 若要加快 dns query 速度  最好本機架一個  caching name server 吧
 
~~破窗計畫來囉~~~

學習與挑戰是我的樂趣... HIT!!
我知道的不多  但歡迎大家以起來討論

UNIX 管理者的學習紀錄 - http://actychen.wordpress.com