squid2.6遇到嚴重問題嘍,高流量下squid進程死鎖(已解決)
squid2.6遇到嚴重問題嘍,高流量下squid進程死鎖,
流量6-7M左右,實際連接IP不足千個,未限制IP連接數目.
squid處於轉髮狀態,後台為2003 IIS,傳送的文件為超過500M的ISO/avi
在一段時間后,squid停止數據傳輸,且無法工作,任何網頁無法打開,squid -k shutdown/kill均無效,kill squid無效,進程STOP狀態,無法殺死
重新啟動計算機可保持一段時間,之後如上述情況
系統為 freebsd6.2+squid2.6.6
[ 本帖最後由 qq830406 於 2006-12-25 21:35 編輯 ]
《解決方案》
我這邊使用的是freebsd6.2+squid2.6,現在很穩定,早期也死過的。
你的配置可以貼出來么?
《解決方案》
6~7M,也敢叫做高流量啊?
《解決方案》
哈哈~
我曾經面過一個淫~ 得意於他自己squid 2Mbits/s的流量~
《解決方案》
原帖由 HonestQiao 於 2006-12-22 23:22 發表
6~7M,也敢叫做高流量啊?
難道你們的squid都跑千兆?
現在2兆左右也死,昨天晚上到現在,不知道什麼時候死了
現在squid的狀態是zoneli
cache_mem 256 MB
cache_dir ufs /squid2/cache0 2048 16 256
#cache_dir coss /squid2/cache1 1024 max-size=1000000 block-size=128
cache_dir ufs /squid1/cache0 2048 16 256
#cache_dir coss /squid1/cache1 1024 max-size=1000000 block-size=128
#用coss內存占的太厲害,後來換aufs,由於squid死鎖問題,改回ufs,已經確認與其無關
half_closed_clients off
cache_swap_low 95
cache_swap_high 98
maximum_object_size 4096 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 8 KB
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_swap_log /var/log/squid/swap.log
logfile_rotate 3
http_port 202.202.202.202:80 vhost vport
cache_vary on
#url_rewrite_host_header on
#acl OverConnLimit maxconn 50
#http_access deny OverConnLimit
#如果打開連接限制時間則長一些,關閉則很快死
acl Manager proto cache_object
acl Localhost src 127.0.0.1 192.168.1.22
http_access allow Manager Localhost
http_access deny Manager
acl all src 0/0
acl LAN src 192.168.1.1/16 #是16這兒沒錯,內網用的172的IP
acl manager proto cache_object
acl Safe_ports port 80 # http
http_access allow LAN
http_access deny !Safe_ports
http_access allow all
visible_hostname xxx1.com
cache_mgr root@xxx1.com
cache_effective_user squid
cache_effective_group squid
tcp_recv_bufsize 65535 bytes
#跟這個buf有關係嗎?還沒測過,一會兒嘗試
acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
cache_peer 192.168.1.22 parent 80 0 no-query originserver login=PASS name=master
cache_peer 192.168.1.55 parent 80 0 no-query originserver name=my55
cache_peer 192.168.1.88 parent 80 0 no-query originserver name=my88
cache_peer_domain master .xxx1.com .xxx2.com .xxx3.cn .xxx4.com .xxx5.cn .xxx6.com .xxx7.cn
#主要緩存這些站
cache_peer_domain my55 test.xxx8.com
#轉發數據也從這兒取,少
cache_peer_domain my88 test2.xxx8.com
#98%的轉發數據主要從my88這兒取
error_directory /usr/local/etc/squid/errors/Simplify_Chinese
icp_port 0
#ftp_user mail@mail.com
#ftp_list_width 64
#ftp_passive on
[ 本帖最後由 qq830406 於 2006-12-23 09:21 編輯 ]
《解決方案》
原帖由 phpman 於 2006-12-23 02:25 發表
哈哈~
我曾經面過一個淫~ 得意於他自己squid 2Mbits/s的流量~
這兒是Mbyte好不好.....
《解決方案》
google了一下,似乎都在說是freebsd的問題,還沒仔細看,不確認,
tcp buf關掉了,現在正在測3M左右的流量 注::byte
http://lists.freebsd.org/pipermail/freebsd-bugs/2006-December/021292.html
持續不到一個小時后,死了,平均帶寬使用6Mbyte (寫byte很不習慣),最高11M
HonestQiao 你的freebsd6.2是不是升級stable的?我用的是RC1,來了務必告訴我下,如果你OK我也升到stable好了
解決辦法:
http://www.mail-archive.com/freebsd-stable@freebsd.org/msg84681.html
升級到最後的RELENG_6,看來必須用stable了
儘管嚴重擔心standard向stable升級會出問題,但我不得不這麼做了:(
還得自己patch一下,但文章中似乎並沒有解決問題,我正在嘗試
Index: kern_mbuf.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/kern_mbuf.c,v
retrieving revision 1.9.2.8
diff -u -r1.9.2.8 kern_mbuf.c
--- kern_mbuf.c 16 May 2006 07:27:48 -0000 1.9.2.8
+++ kern_mbuf.c 25 Nov 2006 14:14:36 -0000
@@ -122,6 +122,7 @@
if (newnmbclusters > nmbclusters) {
nmbclusters = newnmbclusters;
uma_zone_set_max(zone_clust, nmbclusters);
+ uma_zone_set_max(zone_pack, nmbclusters / 2);
EVENTHANDLER_INVOKE(nmbclusters_change);
} else
error = EINVAL;
@@ -203,6 +204,9 @@
zone_pack = uma_zsecond_create(MBUF_PACKET_MEM_NAME, mb_ctor_pack,
mb_dtor_pack, mb_zinit_pack, mb_zfini_pack, zone_mbuf);
+ if (nmbclusters > 0)
+ uma_zone_set_max(zone_pack, nmbclusters / 2);
+
/* Make jumbo frame zone too. Page size, 9k and 16k. */
zone_jumbop = uma_zcreate(MBUF_JUMBOP_MEM_NAME, MJUMPAGESIZE,
mb_ctor_clust, mb_dtor_clust,
[ 本帖最後由 qq830406 於 2006-12-23 12:30 編輯 ]
《解決方案》
奔III/512M的機器,2.6.6內核+squid2.6(epoll),能跑40~50M的流量(全靜態)
《解決方案》
squid剛起來的時候用squidclient 取一下信息,等死了以後再取一下看看差別在哪裡~
或者可以用cacti的squid插件去繪圖,或者squidclient的web界面去看。
查看squid的cache.log日誌,看看有什麼發現,如果你沒有多文件描述符做特別的工作的話,問題基本就出在這裡。
《解決方案》
原帖由 mavsguy 於 2006-12-23 12:09 發表
奔III/512M的機器,2.6.6內核+squid2.6(epoll),能跑40~50M的流量(全靜態)
bit還是byte說清楚,一台奔三你插個千兆網卡?我不信
只有512內存,如果跑千兆,你的硬碟是多個RAID0組成的嗎?
[ 本帖最後由 qq830406 於 2006-12-23 12:31 編輯 ]