専門家に聞いた!繰り返す痔の原因は!? >>

SquidでProxyサーバを構築している環境なのですが、トラブルが発生して困っています。予想している原因が本当にそうなのか、根拠をとるように指示されています。どなたかおわかりになる方いらっしゃいませんか。

<環境>
 ・Linux上でSquidを使っている。
 ・接続端末ごとに、インターネットの接続先仕様を変えるため、スレッドを複数立てている。
 ・各スレッドではポート番号を区別し、端末は接続先としてこのポート番号で分けている。

<トラブル事象と予想原因>
 ・例えばYahoo!などのサイトにアクセスするのに、全く関係のないページにリダイレクトして内容表示する。
 ・上記の複数スレッドが、同一ディレクトリのキャッシュ領域を共有している。(スレッドごとにキャッシュ領域を分けるのが通常の設定の仕方であるらしい)

<知りたいこと>
 ・上記予想原因がありえるのか。
 ・上記のような設定をすることが本来は禁止されていたりするのか。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

(最近は調べていませんが)少なくても初期のSquidは、


「複数スレッドが、同一ディレクトリのキャッシュ領域共有」
は全く想定していなかったと思います。

複数のSquidでキャッシュを共有させるときは、"cache_peer"を設定したはずです。

この回答への補足

もう一つ書き忘れました。cache_peerの設定というのをしなければやはり問題が起きうるとも思われますか。

補足日時:2005/10/08 14:37
    • good
    • 0
この回答へのお礼

ありがとうございます。よろしければもう少し教えていただきたいのですが、複数スレッドから同一ディレクトリのキャッシュ領域共有をしているような設定ならば、申し上げているような不具合が出る可能性あると思われますか。

例えばまず上記の設定をしてはいけないとか、あるいはそうすることで不具合が起こる可能性があるなどと書かれたサイトなどあれば教えていただけませんか。

お礼日時:2005/10/08 14:33

「cache_peerの設定というのをしなければやはり問題が起きうるとも思われますか。



そう思います。(が、このような現象になるかは不明です)

逆にいうと、「キャッシュの共有手段として"cache_peer"が存在」しているので、
これ以外の方法は想定外、と思います。
想定していない使い方をすれば何が起きても不思議じゃないです。

なお、これらを説明したサイトは無いと思います。
必要に応じてソースを追っかけてください。(フリーウェアですから)

大昔にあったCRENはNFSでキャッシュを共有が出来た様な記憶があります。
    • good
    • 0

解説サイトではないですが、本家FAQにこんな記述を見つけました。



3.10 Can Squid benefit from SMP systems?
Squid is a single process application and can not make use of SMP.
<以下省略>

だそうです。

参考URL:http://www.squid-cache.org/Doc/FAQ/FAQ-3.html#ss …
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qsquidのパフォーマンスチューニングに関して

Squidのパフォーマンスチューニングについて、勉強しています。
調査したところ、

1.Cache_MEMの値を変更する

2.ヒット率が少ない場合、Cacheログを使用しない(Cache_dirタグのオプションでread-onlyを使用する)

という方法があることがわかりました。
ほかの方法をご存知の方がいらっしゃいましたら、ご教授いただけますでしょうか?URLなどの紹介でも、うれしいです。

以上、よろしくお願いいたします。

Aベストアンサー

# チューウニングはターゲットを特定した方が実現しやすいです。

単体のパフォーマンスチューニングから若干はなれますが・・・

下記URLの「URLハッシュ式分散Proxyキャッシュ」をうまく利用すると、
静的コンテンツと、動的コンテンツをキャッシュするサーバの分離や、障害予備構成等が可能になります。
例えば、
静的コンテンツだけを扱うサーバは、高速DISKやキャッシュメモリを多くする。
動的コンテンツだけを扱うサーバは、ネットワークパフォーマンスを中心にOSのチューニングする。

などが可能になり、クライアントから見た時のパフォーマンスが向上します。
(当然ですが)ボトルネックがWAN回線になるのなら、動的コンテンツはキャッシュサーバを経由させない事も一案だと思います。

キャッシュシステム全体としてパフォーマンス向上が可能になると思われます。

参考URL:http://naragw.sharp.co.jp/sps/indexj.html

QDNSサーバを設定したのですがnslookupがタイムアウトになります

よろしくお願いします。
最近,固定IPアドレス1個と自jpドメインを取得しました。
結構高かったです。泣きそうです。
しかも1個って・・・
ネットワークとブロードキャストで2個消えるので最低でも4個はもらえるのかと思ってました(汗
ドメイン名もいかした名前は売り切れ,というより意味のある単語はほとんど先客があり,苦し紛れに文字って,なんとかさまになる(??)ドメイン名を取得しました。
という前置きはさておき,今回皆さんにお聞きしたいのはDNSというかネットワークの環境についてです。
恐らくDNSの設定は正しくできていると思うのです。
というのもサーバーにログインしてnslookupコマンドをやると,ちゃんと意図したアドレスが帰ってくるからです。
でも私がメインで使ってるXP機のコマンド画面からnslookupをやると

DNS request timed out.
timeout was 2 seconds.
*** Can't find server name for address サーバーのアドレス: Timed out
*** Default servers are not available
Default Server: UnKnown
Address: サーバーのアドレス

となってしまいます。
DNSの設定の他に
ルーターの設定をいじったり
DHCPサーバーの設定をいじったりと
いろいろからかってみたのですが,未だに解決しません。

何か心当たりのある方いらっしゃいませんか。
どんな些細な事でも思い当たることがありましたら是非とも教えてください。

よろしくお願いします。
最近,固定IPアドレス1個と自jpドメインを取得しました。
結構高かったです。泣きそうです。
しかも1個って・・・
ネットワークとブロードキャストで2個消えるので最低でも4個はもらえるのかと思ってました(汗
ドメイン名もいかした名前は売り切れ,というより意味のある単語はほとんど先客があり,苦し紛れに文字って,なんとかさまになる(??)ドメイン名を取得しました。
という前置きはさておき,今回皆さんにお聞きしたいのはDNSというかネットワークの環境についてです。
恐ら...続きを読む

Aベストアンサー

 なるほど、それでは 192.168.1.130 という DNS サーバ側では引けているので、設定は問題ないという事ですね。

 そうしましたら、DNS 情報の登録はどのようになされていますでしょうか。もし .jp ドメインであれば
http://whois.jprs.jp/
こちらから情報の確認が出来ます。

 確認ポイントは[Name Server]で指定がされている DNS サーバです。ここで固定 IP アドレスを取得されたドメイン名のホスト情報を表示していますでしょうか。

 ドメイン登録業者では、一般的にそのドメイン業者の持つ DNS サーバが割り当てていますので、変更が必要になります。もし初期状態のままでしたら、DNS サーバまわりの設定(もしくは業者への申請)が適切かどうかご確認されたほうが良さそうです(お名前.comでしたらアドバイス可能です)。

QSquidの起動エラーについて

教えて下さい。
Squidをインストールしてあるサーバ(Linux AS2.1)をシャットダウンして再起動すると、以下のメッセージが出力されsquidが起動されない場合があります。(正常に起動される場合もあります)
Squid is already running! Process ID 685
psコマンドで見たのですが、いませんでした。
因みに、起動コマンドは以下にしております。
$SQUID_HOME/sbin/squid –DNsY $conf >> $logdir/squid.out 2>&1 &
以上、宜しくお願い致します。

Aベストアンサー

/etc/init.d以下にあったsquidのスクリプト、redhat製とは違うようですが…
AS2.1だと、squid-2.4.STABLE7かと思いますが、入っているのはなんなのでしょうか?
squid -vでバージョンが表示されるかと思います。

どなたかのオリジナルビルド…なのでしょうね。
/etc/init.d/squidは元々のものを改変しているようです。
AS2.1のrpmの所在は知らないので、互換のCentOS2.1のrpmを。
ftp://ftp.riken.jp/Linux/centos/2.1/source/i386/SRPMS/ に少し古いsquidのsrpmがあります。
こちらをインストールすると、squid.initというファイルがあります。
/etc/init.d/squidに配置されるファイルになります。
内容を比較されると違いが分かるでしょう。

> 以下をコメントにしているのが良くないのでしょうか?
> # kill -9 `cat $logdir/squid.pid`

/usr/local/squid/sbin/squid -k shutdown
があるので問題ありません。
2.6系のsquidのソースを確認しましたが、killの場合だとpidファイルの削除処理は実行されないようでした。
redhat製の場合、/etc/rc0.d や/etc/rc6.d にsquidの停止用のスクリプト(正確にはシンボリックリンク)が配置され、再起動ヤャットダウン時に実行されます。
その際にstopオプション付きで/etc/init.d/squid等が実行されますが、この時にsquidはpidファイルを削除します。
無い場合は/etc/init.d/killallにより各プロセスにシグナルが送られ終了させられることになります。

/etc/init.d/squidへのシンボリックリンクを
/ec/rc0.dと/etc/rc6.dの下にK25squidなどの名前で作成すればよろしいかと。
subsysにファイルが作成されたりはしないでしょうからそれでもうまくいくかは不明ですが。
redhatでのビルドとは違うので、どこまで対応できるかは不明です。

/etc/init.d以下にあったsquidのスクリプト、redhat製とは違うようですが…
AS2.1だと、squid-2.4.STABLE7かと思いますが、入っているのはなんなのでしょうか?
squid -vでバージョンが表示されるかと思います。

どなたかのオリジナルビルド…なのでしょうね。
/etc/init.d/squidは元々のものを改変しているようです。
AS2.1のrpmの所在は知らないので、互換のCentOS2.1のrpmを。
ftp://ftp.riken.jp/Linux/centos/2.1/source/i386/SRPMS/ に少し古いsquidのsrpmがあります。
こちらをインストールすると、...続きを読む

QSquidが応答しません

海外在住でその国にサーバーがあるVPS(CentOS 5)でSquid(v2.6 Stable21)を構築しましたが応答しません。
VPSにあるWebサーバー(Apache)にはアクセスでき、正常に表示されるのですが、Squidはうんともすんともいわないです。
Squidは起動しており、sudo /etc/init.d/squid status を実行すると、
squid (pid 2649) is running...
と表示されます。
しかし、IEでプロキシの設定をしてアクセスすると「プロキシ サーバーは応答していません」と表示され、そのままネットワーク診断をすると「リソース(Webプロキシ)はオンラインですが、接続試行には応答していません。」と表示されます。
アクセスログは空のままで、リスタートした際のキャッシュログは以下のようになっています。
Basic認証等もしておらず、http_access allow allとしています(そもそもアクセスログに何も残っていないですが)
VPS側から他のネットワークにpingを飛ばしてみても正常に動いていますし、クライアントからVPS側にpingを飛ばしても正常に返ってきます。
squid.outには何もエラーは表示されておらず、store.logも空です。
/etc/sysconfig/iptables に下記を追加し、ポート3128も解放しています。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT

また、クライアント側で他の公開されているプロキシを利用した際は正常に動いています。

何か考えられる原因や解決方法がありましたら、ご教示ください。

Preparing for shutdown after 0 requests
Waiting 30 seconds for active connections to finish
FD 14 Closing HTTP connection
Shutting down...
FD 15 Closing ICP connection
Closing unlinkd pipe on FD 12
storeDirWriteCleanLogs: Starting...
Finished. Wrote 0 entries.
Took 0.0 seconds ( 0.0 entries/sec).
CPU Usage: 0.012 seconds = 0.008 user + 0.004 sys
Maximum Resident Size: 23984 KB
Page faults with physical i/o: 2
Memory usage for squid via mallinfo():
total space in arena: 2508 KB
Ordinary blocks: 2430 KB 5 blks
Small blocks: 0 KB 5 blks
Holding blocks: 244 KB 1 blks
Free Small blocks: 0 KB
Free Ordinary blocks: 77 KB
Total in use: 2674 KB 97%
Total free: 77 KB 3%
Squid Cache (Version 2.6.STABLE21): Exiting normally.
Starting Squid Cache version 2.6.STABLE21 for i686-redhat-linux-gnu...
Process ID 2649
With 1024 file descriptors available
Using epoll for the IO loop
DNS Socket created at 0.0.0.0, port 41221, FD 7
Adding nameserver 8.8.8.8 from /etc/resolv.conf
Adding nameserver 8.8.4.4 from /etc/resolv.conf
User-Agent logging is disabled.
Referer logging is disabled.
Unlinkd pipe opened on FD 12
Swap maxSize 102400 + 8192 KB, estimated 0 objects
Target number of buckets: 425
Using 8192 Store buckets
Max Mem size: 8192 KB
Max Swap size: 102400 KB
Local cache digest enabled; rebuild/rewrite every 3600/3600 sec
Rebuilding storage in /var/spool/squid (CLEAN)
Using Least Load store dir selection
Set Current Directory to /var/spool/squid
Loaded Icons.
Accepting proxy HTTP connections at 0.0.0.0, port 3128, FD 14.
Accepting ICP messages at 0.0.0.0, port 3130, FD 15.
WCCP Disabled.
Ready to serve requests.
Done reading /var/spool/squid swaplog (0 entries)
Finished rebuilding storage from disk.
0 Entries scanned
0 Invalid entries.
0 With invalid flags.
0 Objects loaded.
0 Objects expired.
0 Objects cancelled.
0 Duplicate URLs purged.
0 Swapfile clashes avoided.
Took 0.3 seconds ( 0.0 objects/sec).
Beginning Validation Procedure
Completed Validation Procedure
Validated 0 Entries
store_swap_size = 0k
storeLateRelease: released 0 objects

海外在住でその国にサーバーがあるVPS(CentOS 5)でSquid(v2.6 Stable21)を構築しましたが応答しません。
VPSにあるWebサーバー(Apache)にはアクセスでき、正常に表示されるのですが、Squidはうんともすんともいわないです。
Squidは起動しており、sudo /etc/init.d/squid status を実行すると、
squid (pid 2649) is running...
と表示されます。
しかし、IEでプロキシの設定をしてアクセスすると「プロキシ サーバーは応答していません」と表示され、そのままネットワーク診断をすると「リソース(Webプロキシ)は...続きを読む

Aベストアンサー

そのサーバー自体にはsshなどでログインできるのですよね?

ログイン後

telnet localhost 3128

など、自分自身で参照してみてください
httpサーバーのように

Escape character is '^]'.
的な戻りがあれば「GET /」
などでとりあえず戻ってくることを確認し、
access.logが更新されているかみてみてください。

自分自身でOKなら、次は別マシンからテスト、
戻ってこないならポートがうまくあいていないかも

Qsquid.confのalways_direct allowで複数のドメインを指定する記述方法を教えてください

squid2.5で、proxyを通さずダイレクトに参照させる設定をsquid.confにしたいのですが、「acl 名前 dstdomain ドメインかアドレス」「always_direct allow 名前」の記述で、ダイレクトに参照させたいドメインやアドレスが複数の場合はどう記述すればよいのでしょうか。
squid.confの該当項目の記述例では1ドメインのみの例が書かれていたため複数のドメインを一括して記述する方法がわかりません。
(それとも、aclの行と、always_direct allow の行をドメインごとに書くものなのでしょうか)
よろしくお願いします。

Aベストアンサー

squid.confの記述を見る限りでは
他の設定と同じようなので

acl local-servers dstdomain my.domain.net
acl microsoft dstdomain www.microsoft.com
acl google dstdomain www.google.co.jp

always_direct allow local-servers microsoft google

でいけると思います。勿論

always_direct allow local-servers
always_direct allow microsoft
always_direct allow google

と3行書くのもありでしょう。

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Qlogが更新されなくなりました

現在、Turbolinux6.0WSを使っています。

昨日までは
/var/log
の中身はちゃんと更新されていたのに今は
massages
maillog
等が更新されていません。

メールの送受信などは毎日するのでログが残らないというのはおかしいと
思うのですが、なぜ残らなくなったのかが分かりません。

どなたか心当たりないでしょうか?

Aベストアンサー

X環境でうまくいっているように見えているだけでじつはsyslogがちゃんと動いていないだけだとおもいます。

コンソール環境の出力がただしい。

多分/etc/servicesからsyslogのエントリが消えているとおもいます。

syslog 514/udpのような行は/etc/servicesに存在しますか?

QSquidが突然遅くなった?

Linux & Squidがインターネットゲートウエイなんですが
なぜかSquidが突然遅くなってしまいました。
同じマシーンにはIPマスカレードも動作していますが、
そちらを利用した場合は特に遅くはありません。

どのような場合遅いのかと言うと、ドメインを移動する時に
2~5秒ほどのラグがはっせいします。
ただ、一度訪れたドメインはキャッシュがヒットするらしく
ラグなしで表示されます。

この現象に気づいたのが、LAN側に別セグメントを増やす為にGWに
スタティックルートを追加してSquid.confにそのセグメントのACLを
追加した後に気づきました、これが原因で起こったと思い
設定を元に戻してRebootしてみたのですが状況が変わらず。

DNSのせいかと思い、GWマシーンのコンソールでnslookupで
まだ引いていないドメインを正引きしてみたのですが、色々
試してみてもDNSでラグが発生している様子はありませんでした。

次にsquidのキャッシュがコンフリクトしたのかと思い、キャッシュ
ディレクトリを削除後、ディレクトリの再構築を行なったのですが
やはり効果なし・・・

仕方が無いのでGWをRebootしたのですが、これも全く効果なし・・

こんな状況なのですが何か分かること、解決する方法は無いでしょうか?
よろしくお願いいたします。

Linux & Squidがインターネットゲートウエイなんですが
なぜかSquidが突然遅くなってしまいました。
同じマシーンにはIPマスカレードも動作していますが、
そちらを利用した場合は特に遅くはありません。

どのような場合遅いのかと言うと、ドメインを移動する時に
2~5秒ほどのラグがはっせいします。
ただ、一度訪れたドメインはキャッシュがヒットするらしく
ラグなしで表示されます。

この現象に気づいたのが、LAN側に別セグメントを増やす為にGWに
スタティックルートを追加してSquid.confにそ...続きを読む

Aベストアンサー

squid の access.log cache.log store.log が巨大化
してませんか? 巨大化してるようなら、こいつらを
消してしまうか、squid2 であれば、squid -k rotate
で、ログを rotate してみてはいかがでしょうか。

Qシェルスクリプトでファイル内の数値文字列を数値として扱うには

失礼します。
シェルスクリプトでファイル内のテキスト(数値文字列)を取得して、それを使って計算するにはどうすれば良いでしょうか?

str:ファイル内のテキスト(数値文字列)

res=$(( $str + 1 ))

・エラー
")syntax error: invalid arithmetic operator (error token is "


よろしくお願いします。

Aベストアンサー

bashをご使用と判断して

res=$(( $str + 1 ))
ではなく、
res=$(( str + 1 ))
だと思います。

> exprもやってみたのですが、処理が遅くなるので使いません。
興味があって以下のシェルで検証してみました。

#!/bin/bash

str=1
i=0

echo 'Using $((str + 1))'
date '+%H:%M:%S.%N'

while [ $i -lt 10000 ]
do
str=$(( str + 1))
i=`expr $i + 1`
done

date '+%H:%M:%S.%N'

exit

$ ./test.sh
Using $((str + 1))
09:18:46.290418000
09:18:56.929345000
これをexprに書き換えたところ
$ ./test2.sh
Using expr
09:19:00.302748000
09:19:19.259990000

exprだと19秒ですが、$(( 演算 )) だと10秒程度なので、演算が多くなれば確かにexprは不利ですね。

bashをご使用と判断して

res=$(( $str + 1 ))
ではなく、
res=$(( str + 1 ))
だと思います。

> exprもやってみたのですが、処理が遅くなるので使いません。
興味があって以下のシェルで検証してみました。

#!/bin/bash

str=1
i=0

echo 'Using $((str + 1))'
date '+%H:%M:%S.%N'

while [ $i -lt 10000 ]
do
str=$(( str + 1))
i=`expr $i + 1`
done

date '+%H:%M:%S.%N'

exit

$ ./test.sh
Using $((str + 1))
09:18:46.290418000
09:18:56.929345000
これをe...続きを読む


人気Q&Aランキング