[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:48681] Debian Sarge 上の Squid を経由したインターネット接続が遅い
こちらには,初めて投稿いたします,荒木田と申します.
# 長くなってしまいますが,お許しください.
現在,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/17 16:55:13
回線速度/経路長/OSï会社や大学など/-/Linux/東京都
サービス/ISP -/その他ï
サーバ1[N] 177kbps
サーバ2[S] 2.31Mbps
下り受信速度¦: 2.3Mbps(2.31Mbps,289kByte/s)
上り送信速度¦: 6.6Mbps(6.67Mbps,830kByte/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_PARENT/parent-proxy-server.foo.ac.jp text/html
1179388518.411 114 133.9.102.209 TCP_MISS/200 367 POST http://zx.sokudo.jp/cgi-bin/upload2.cgi - FIRST_UP_PARENT/parent-proxy-server.foo.ac.jp text/html
1179388518.554 36 133.9.102.209 TCP_MISS/200 405 POST http://zx.sokudo.jp/cgi-bin/log2.cgi - FIRST_UP_PARENT/parent-proxy-server.foo.ac.jp text/html
/var/log/squid/store.log には,
1179388432.764 RELEASE -1 FFFFFFFF 9A5AD3D455DC4A22C59C0F12F7848E4D 200 1179388319 1145937743 -1 application/x-shockwave-flash 3114198/14182 GET http://sv11.sokudo.jp/41.swf?
1179388437.092 RELEASE -1 FFFFFFFF A3B9A267B7CC36C5C5967F6531E3D486 200 1179388349 1145937533 -1 application/x-shockwave-flash 3114198/21274 GET http://zx.sokudo.jp/41.swf?
1179388437.814 RELEASE -1 FFFFFFFF 6F2EB2998E6D2E1BA6AF6FB5FBA27AFB 200 1179388328 -1 -1 text/html -1/91 POST http://zx.sokudo.jp/cgi-bin/upload2.cgi
1179388438.530 RELEASE -1 FFFFFFFF A28D3A6CCDFDB92A8A726091AA49D4B3 200 1179388354 -1 -1 text/html -1/91 POST http://zx.sokudo.jp/cgi-bin/upload2.cgi
1179388438.590 RELEASE -1 FFFFFFFF FE402818301B290D5712FBC32E99294F 200 1179388328 -1 -1 text/html -1/129 POST http://zx.sokudo.jp/cgi-bin/log2.cgi
のように記録されています.
そこで,試しに squid_2.6.5.orig.tar.gz を取得して new-server 上で
コンパイル/インストールしてみましたが,結果はほとんど変わりませんでした.
インストールは apt で入れた squid と干渉しないようにと,
./configure
make all
make install
で /usr/local/squid 配下にとりあえず入るようにし,
/usr/local/squid/bin/RunCache を実行して起動しました.
new-server はそれまで稼働していたマシン (old-server) のマシントラブル
多発のために,リプレースする形で導入したのですが,試しにこの old-server を
立ち上げ,new-server の squid.conf を使って(上記した設定が有効になっている
squid.conf です) squid を起動し,old-server 経由でインターネット接続を
試したところ,例えば,上記速度測定サイトでの結果は,
速度.jp スピードテスト 高機能版 回線速度 測定結果
http://zx.sokudo.jp/ã v3.0.0
測定時刻» 2007/05/17 18: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)
となり,new-server の場合よりも1桁高速にアクセスできています.
old-server は僕が赴任する前に導入されていた,業者が組んで納品したマシンで,
詳細が分からない部分もありますが,Debian sarge (kernel 2.4.26-1-686),
CPU Intel(R) Pentium(R) 4 CPU 2.80GHz,メモリ1G,
HDD 40GB(SCSI) + 120GB(SCSI),swap 1GB,NIC は Onboard ですが,
Intel 製です,lspci しますと,
Ethernet controller: Intel Corp. 82540EM Gigabit Ethernet Controller
とでます.ドライバは e1000 です.
old-server の Squid のバージョンも new-server と同じで 2.5.STABLE9 です.
new-server と old-server に対して,例えば sftp によるファイル転送を
行うと,両者でファイルの転送速度に違いはほとんど見られません.今の所,
squid を介した接続でしか,通信速度の著しい違いは見受けられない状況です.
最初 PowerEdge の Onboard の NIC がボトルネックになっているのかと思い,
Intel の NIC を導入したのですが改善されず,squid のコンパイルでも
改善しませんでした.
こういった状況で,squid 経由の通信遅延が何が原因で,どこで起こっているのか
掴みかねている状況です.
Squid の設定で見落としている点や,改善に繋がりそうな指針などありましたら,
ポインタでも構いませんので,ご教授頂ければと思います.
よろしくお願い致します.
--
荒木田 英禎