• 締切済み

Squidで複数スレッドを立ち上げた場合のキャッシュについて

SquidでProxyサーバを構築している環境なのですが、トラブルが発生して困っています。予想している原因が本当にそうなのか、根拠をとるように指示されています。どなたかおわかりになる方いらっしゃいませんか。 <環境>  ・Linux上でSquidを使っている。  ・接続端末ごとに、インターネットの接続先仕様を変えるため、スレッドを複数立てている。  ・各スレッドではポート番号を区別し、端末は接続先としてこのポート番号で分けている。 <トラブル事象と予想原因>  ・例えばYahoo!などのサイトにアクセスするのに、全く関係のないページにリダイレクトして内容表示する。  ・上記の複数スレッドが、同一ディレクトリのキャッシュ領域を共有している。(スレッドごとにキャッシュ領域を分けるのが通常の設定の仕方であるらしい) <知りたいこと>  ・上記予想原因がありえるのか。  ・上記のような設定をすることが本来は禁止されていたりするのか。

みんなの回答

  • qaaq
  • ベストアンサー率36% (146/404)
回答No.3

解説サイトではないですが、本家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#ss3.10
  • qaaq
  • ベストアンサー率36% (146/404)
回答No.2

「cache_peerの設定というのをしなければやはり問題が起きうるとも思われますか。」 そう思います。(が、このような現象になるかは不明です) 逆にいうと、「キャッシュの共有手段として"cache_peer"が存在」しているので、 これ以外の方法は想定外、と思います。 想定していない使い方をすれば何が起きても不思議じゃないです。 なお、これらを説明したサイトは無いと思います。 必要に応じてソースを追っかけてください。(フリーウェアですから) 大昔にあったCRENはNFSでキャッシュを共有が出来た様な記憶があります。

  • qaaq
  • ベストアンサー率36% (146/404)
回答No.1

(最近は調べていませんが)少なくても初期のSquidは、 「複数スレッドが、同一ディレクトリのキャッシュ領域共有」 は全く想定していなかったと思います。 複数のSquidでキャッシュを共有させるときは、"cache_peer"を設定したはずです。

osamu4639
質問者

お礼

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

osamu4639
質問者

補足

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

関連するQ&A

  • squid cache_peerのproxy-onlyオプションについて

    上位プロキシを指定したいsquidサーバのsquid.conf内で、   cache_peer 上位プロキシのIP parent 上位サーバのポート proxy-only とすると、下位squidではコンテンツをキャッシュしないのでしょうか? 構成は以下です。 インターネット ↑ squidサーバ#1 ↑ squidサーバ#2 ↑ クライアントPC 調べたところ、 「'proxy-only'を指定した場合、このキャッシュから取って来られたオブジェクトはローカルに保存されない。」 というような文献を見つけるのですが、 この「ローカル」の意味が、squidサーバ#2なのか、クライアントPCのブラウザキャッシュなのか、いまいち理解できないのです。 最終的に知りたいこととしては、proxy-onlyオプションを書いている限り、squidサーバ#2にキャッシュされることはないのか?ということです。 ご教授ください、宜しくお願いいたします。

  • squidのフリーズ?についてです!

    こんにちわ。田中と申します。 会社でproxyサーバを管理しています。 A・Bと2台立ててまして普段は両方とも問題なく稼動しているのですが Aだけ1~2ヶ月に1度、ものすごくcpuに負荷がかかり squidが機能しなくなる事があります。 コマンドを叩こうにもレスポンスが著しく悪く なんとか再起動したら元に戻ります。 同様のトラブルを防ぐ為に ログ等を見て原因を解明しようと思うのですが どこから調べたらいいのでしょうか。 負荷が異様にかかった状態が続く事はどういう事が考えられるでしょうか? ヒントをお願いします! ちなみに環境は OS:RedHat6.0 squid:2.2STABLE4 ハード:Compaq PROLIANT1850R squid.confの設定 cache_mem 24 MB cache_dir /var/spool/squid 2048 16 256 dns_children 30 refresh_pattern . 0 20% 43200 reference_age 1 month squid以外にはdelegateを動かしてるくらいです。 宜しくお願いします。

  • squidを起動するとエラー出てしまいます。

    お世話になります。 MacOSX(10.3.9)にsquidをインストールして起動すると ./RunCache: line 35: 420 Abort trap squid -NsY $conf >>$logdir/squid.out 2>&1 Running: squid -sY >> /usr/local/squid/var/squid.out 2>&1 というエラーが出てしまい、原因が分からず困っています。 squid.confはcache_effective_user、cache_effective_group、http_portを編集しました。 http_portは80です。 原因と修正方法を教えてください。 よろしくお願いいたします。

  • apacheとSquidの連携ついて

    お世話になっております。 以下のようなことを行いたいのですが。 URL aaa.bbb:8080/ccc というサイトを作成しております。 これを URL aaa.bbb/ccc でアクセス(8080は明示しなくても接続させる。)させたいのです。 そして、実際にはSquidで作成したキャッシュを読み込ませたいので すが、どのようにすればよろしいでしょうか? 簡単に説明すると Apache→ Squid→キャッシュ という感じです。なお、通常の80番のポートも使用したWebもあります。 特定のURLだけをSquidに送りたいのですが。 よろしくお願いいたします。 OS sentos5 apache2.2.3 Squid 2.6.STABLE6

  • squidを使用しての接続先指定方法

    現在squidを使用してのProxyサーバ構築を行っております。 現状の環境では、Proxyサーバが3台存在しており、用途は以下の通りになります。  Proxyサーバ1:ユーザがまず接続にくる、内部用Proxyサーバ  Proxyサーバ2:外部インターネットへの接続専用Proxyサーバ  Proxyサーバ3:社内用サイトへの接続専用Proxyサーバ 上記サーバ構成にて、特定の社内用サイトへの接続時のみ「Proxyサーバ3」へ接続し、その他接続を全て「Proxyサーバ2」へ接続するような設定にしたいのですが、手段が解らず困っております。 設定方法または設定方法の情報が記載されているURLをご存知でしたらご教示ください。 Linuxは初心者なので、初歩的に質問なのかもしれませんが、宜しくお願い致します。

  • squidで特定のページが開かない

    SQUID初挑戦です。RHEL3にsquid2.5の環境を構築しました。 PC→→FW→→WWW    ↓    squid です。本問い合わせについてFWの通信制御は無視してください。 PCにはsquidへの通信port8080のみ squidはWWWへ通信 以上の環境で、特定のページ(ユーザ認証…例.ANA、7&Yショッピングカート)で正しく応答が帰ってきません。 GYAOやWindowsUpdateなどもうまくいかず、WUについてはWSUSを別立てして回避など苦肉の策で逃げていますが、少々限界ぽいです。 squid経由の場合に起きています。(直接の場合には起きない) できるだけ、squidを使わずに直接接続する例外は許可したくないので、皆様のお知恵を貸してください。 よろしくお願いいたします。

  • squidと多段プロキシ

    OS : RedHatLinux 7.2 + squid (標準でインストールされるバージョン) LAN側IP 192.168.1.0/24 GW 192.168.1.254 Linux IP:192.168.1.10 設定項目表を確認すると、WEBのプロキシサーバーのアドレスが 192.168.8.1:3128 となっているんです。 ただ、このサーバーは内部側になくてどうやら接続先に あるようなのです。教育機関のネットワークですので少し特殊と思います。 squid.confの中として http_port 8080 acl_*** src 192.168.1.0/255.255.255.0 http_access allow *** forwarded_for off この程度しか変更しておりません。 ただ、cache_peer 192.168.8.1 parene 3128 3130 の 項目を入れてみたのですが、変化無しでした。 Linux上でのブラウザでプロキシの設定のところを 192.168.8.1 に 設定するといいのですが、ローカルIP(192.168.1.10) を入れるとだめみたいです。 当然、クライアントにIP 192.168.8.1を入れると通ります。 クライアントはRedHatLinuxのプロキシを使いたいのです。 クライアント→Proxy→教育機関Proxy→WEB 皆様のお知恵をお借りしたいと思います。 よろしくお願いします。

  • 同一サーバでhttpdでのWebサイト複数立ち上げ

    apache(httpd)とJBossの連携で、Webサイトを立ち上げています。 ここで、同一IPアドレスで、別ポート番号で、httpd.confを複数用意し、 httpdを複数起動させ、Webサイトを複数立ち上げようとしています。 現在、デフォルトのポート番号を使用してWebサイトを立ち上げています。 これを、A環境します。 ここに、もう一つ、JBossで環境を構築し、別ポート番号で、httpd.confを 用意し、httpdを起動させ、Webサイトを立ち上げようとしています。 これを、B環境とします。 同一IPアドレス(同一サーバ)で、httpdが複数常駐した環境で、Webサイト が複数存在する環境となります。 Webサイトへの接続は、1つは、デフォルトのままなので、 urlが、「http://www.~.jp/~」(A環境)と、 もう一つは、ポート番号指定で、 urlが、「http://www.~jp:ポート番号/~」(B環境) で行っているのですが、 ポート番号指定で、Webサイトに接続してくれません。期待した画面を表示 してくれません。 接続はできるのですが、要は、ポート番号指定のurlで、Webサイトに接続 を行うと、A環境のサイトに接続し、A環境の画面を表示してしまいます。 何が原因なのでしょうか。 お願いします。

  • squid:接続しているポートの確認

    あるWebサイトにSquid(プロキシサーバ)経由で接続する際に、 1台のプロキシを指定した場合は、正常に接続できるのですが もう一台のプロキシでは接続できません。 接続ができないWebサイトが特殊なサービス内容となっているため 利用しているポートなどが違うのでは、と疑っています。 (各々のプロキシの環境設定も異なっています) 接続できないサービスに接続しようとした際に、各々のプロキシで 何が違うのか確認する良い方法はありますか? よろしくお願いいたします。

  • Squidが応答しません

    海外在住でその国にサーバーがある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