[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:48691] Re: Debian Sarge 上の Squid を経由したインターネット接続が遅い



荒木田です.

[debian-users:48681] での投稿記事のエンコードが utf-8 になって
しまっていましたので,再送致します.

どうも,速度測定の部分をコピー・ペーストした際に
化けてしまったようです.申し訳ございません.

################## 以下再送 ##################

こちらには,初めて投稿いたします,荒木田と申します.

# 長くなってしまいますが,お許しください.

現在,Dell PowerEdge 830 に武藤さんの installer を用いて Sarge を
インストールしたサーバ (new-server とします) で squid を
動かしているのですが,クライアント PC から squid を経由して,ある
種のサイトへの接続に非常に時間がかかり,場合によっては接続が 
Time Out してしまう状況に悩んでおります.

new-server のインストール時に使用したイメージは,

   sarge-custom-1115.iso

で,現在,

   % uname -a
   Linux new-server 2.6.19-rc3-1-486 #1 Mon Oct 30 13:49:42 UTC 2006 i686 GNU/Linux

という環境です.

new-server のマシンスペックで関係しそうな部分は,

   - CPU:Intel(R) Pentium(R) D CPU 2.80GHz
   - Chip Set:Intel E7230
   - メモリ:1GB
   - Swap:2GB
   - HDD:購入当初の 80GB + 増設した Maxtor MaxLine 250GB
   - NIC:Intel Pro 1000 GT PCI (ドライバ e1000)

詳細は,若干の違いもありますが,概ね

   http://www.dell.com/downloads/jp/products/pedge/poweredge830.pdf

にあるとおりだと思います.

squid のバージョンは 2.5.STABLE9 で,インストールは,

   apt-get install squid

で行いました./etc/squid/squid.conf で有効になっている部分だけ
(コメントアウトされている部分だけ)抜き出しますと(IP 等一部置き換えます)
以下のとおりです:

http_port 8080
icp_port 0
cache_peer parent-proxy-server.foo.ac.jp parent 8080 7 no-query
   # 階層 Proxy にしています
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 64 MB
cache_dir ufs /var/spool/squid 1500 16 256
ftp_user proxyuser@xxxxxxxxx
dns_nameservers 127.0.0.1 aaa.aaa.aaa.aaa bbb.bbb.bbb.bbb ccc.ccc.ccc.ccc
   # 後ろ3つは本当は参照している DNS の IP です.
refresh_pattern ^ftp:		     1440  20%	10080
refresh_pattern ^gopher:	     1440  0%	1440
refresh_pattern .			   0	20%	4320
auth_param basic program /usr/lib/squid/ldap_auth -b "ou=Users,dc=foo,dc=ac,dc=jp" -f "(&(uid=%s)(objectClass=posixAccount))" ddd.ddd.ddd.ddd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl user-auth proxy_auth REQUIRED
   # 上の5行は LDAP 認証のためです
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl systemA src xxx.xxx.xxx.xxx
acl systemB src yyy.yyy.yyy.yyy/25
acl systemC src zzz.zzz.zzz.zzz/24
acl systemD src www.www.www.www/24
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563	# https, snews
acl SSL_ports port 873		# rsync
acl Safe_ports port 80		  # http
acl Safe_ports port 21		    # ftp
acl Safe_ports port 443 563	    # https, snews
acl Safe_ports port 70		    # gopher
acl Safe_ports port 210		      # wais
acl Safe_ports port 1025-65535	      # unregistered ports
acl Safe_ports port 280			# http-mgmt
acl Safe_ports port 488			  # gss-http
acl Safe_ports port 591			    # filemaker
acl Safe_ports port 777			      # multiling http
acl Safe_ports port 631				# cups
acl Safe_ports port 873				  # rsync
acl Safe_ports port 901				    # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
acl KINSHIURL1 dstdomain 2ch.net mixi.jp
acl KINSHIURL2 url_regex 2ch mixi
http_access deny KINSHIURL1
http_access deny KINSHIURL2
   # 2ch と mixi への接続を切っています
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow sysytemA
http_access allow sysytemB
http_access allow systeemD user-auth
http_access deny all
http_reply_access allow all
icp_access allow all
visible_hostname foo.ac.jp
always_direct allow localhost
always_direct allow systemC
never_direct allow all
coredump_dir /var/spool/squid

このように設定した squid 経由の全てのサイトの閲覧が遅いという訳ではなく,
大きめの画像や JAVA アプレットがある海外のサイトでもスムーズに閲覧できる
場合もあります.

通信速度の著しい低下は,例えば flush を用いたサイトを閲覧した
場合に非常に顕著で,flush を使ったサイトが表示されるまでに
大体5分程かかってしまいました.swf ファイルの容量にはよらず,
flush が現れた途端に遅延に直面するといった具合です.
squid を再起動しても症状は変わりません.

例えば以下のサイト,

   http://zx.sokudo.jp/

で new-server の squid を経由して通信速度を測定しますと,

   速度.jpスピードテスト高機能版回線速度測定結果
   http://zx.sokudo.jp/ v3.0.0
   測定時刻 2007/05/1718:26:12
   回線速度/経路長/OS 会社や大学など/-/Linux/東京都
   サービス/ISP -/その他
   サーバ1[N] 42.9Mbps
   サーバ2[S] 44.1Mbps
   下り受信速度: 44Mbps(44.1Mbps,5.52MByte/s)
   上り送信速度: 43Mbps(43.1Mbps,5.3MByte/s)

という結果になります.

接続が遅くなっている時に log にエラーを示すメッセージは現れません.
例えば flush を使っている上記の速度測定サイトを閲覧している場合,
/var/log/squid/access.log には,

1179388512.642   3385 133.9.102.209 TCP_MISS/200 14162 GET http://sv12.sokudo.jp/41.swf? - FIRST_UP_PARENT/parent-proxy-server.foo.ac.jp application/x-shockwave-flash
1179388517.000   3382 133.9.102.209 TCP_MISS/200 20698 GET http://zx.sokudo.jp/41.swf? - FIRST_UP_PARENT/parent-proxy-server.foo.ac.jp application/x-shockwave-flash
1179388517.650     89 133.9.102.209 TCP_MISS/200 367 POST http://zx.sokudo.jp/cgi-bin/upload2.cgi - FIRST_UP_PAREN
最初 PowerEdge の Onboard の NIC がボトルネックになっているのかと思い,
Intel の NIC を導入したのですが改善されず,squid のコンパイルでも
改善しませんでした.

こういった状況で,squid 経由の通信遅延が何が原因で,どこで起こっているのか
掴みかねている状況です.

Squid の設定で見落としている点や,改善に繋がりそうな指針などありましたら,
ポインタでも構いませんので,ご教授頂ければと思います.

よろしくお願い致します.

 
--
荒木田 英禎