web-dev-qa-db-ja.com

ワニスによりページの読み込み時間が長くなる

私はDrupal 6とUbuntu 11.04でpressflowを実行しています。Varnish httpアクセラレータとVarnish Drupalモジュールをインストールしました。Varnishが実行中であり、admin /のVarnishページ設定/ワニスはこれを確認します。

次のように、ApacheベンチでVarnishをインストールする前後に、リクエストごとの時間を測定しました。

ab -n 10 http://my-site.local/

ワニスをインストールすると、実際にはリクエストごとの時間が約1秒から1.3秒に増えるため、ワニスのhttpアクセラレータの設定に問題があるはずです。

Php.iniで、memory_limitを512Mに設定しました。

Drupalと対話するようにVarnishを構成している間、私は http://groups.drupal.org/node/25425 で提供されるこれらの指示に従いました。

これが私の/ etc/default/varnishの内容です

 # Configuration file for varnish
    #
    # /etc/init.d/varnish expects the variables $DAEMON_OPTS, $NFILES and $MEMLOCK
    # to be set from this Shell script fragment.
    #

    # Should we start varnishd at boot?  Set to "yes" to enable.
    START=yes

# Maximum number of open files (for ulimit -n)
NFILES=131072

# Maximum locked memory size (for ulimit -l)
# Used for locking the shared memory log in memory.  If you increase log size,
# you need to increase this number as well
MEMLOCK=82000

# Default varnish instance name is the local nodename.  Can be overridden with
# the -n switch, to have more instances on a single server.
INSTANCE=pressflow

# This file contains 4 alternatives, please use only one.

## Alternative 2, Configuration with VCL
#
# Listen on port 6081, administration on localhost:6082, and forward to
# one content server selected by the vcl file, based on the request.  Use a 1GB
# fixed-size cache file.
#

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -u varnish -g varnish \
             -S /etc/varnish/secret \
             -s malloc,256M"

そして、Apacheベンチを数回実行した後にVarnishモジュールが提供する統計を以下に示します。

      41  Client connections accepted
      41  Client requests received
      29  Cache hits for pass
      12  Cache misses
      41  Backend conn. success
      12  Backend conn. was closed
      12  Backend conn. recycles
       1  Fetch with Length
      11  Fetch chunked
      29  Fetch wanted close
      11  N struct sess_mem
       2  N struct object
       4  N struct objectcore
       4  N struct objecthead
      10  N worker threads
      10  N worker threads created
       1  N backends
      10  N expired objects
      40  Objects sent with write
      41  Total Sessions
      41  Total Requests
      29  Total pass
      41  Total fetch
   16495  Total header bytes
  645600  Total body bytes
      41  Session Closed
       1  Session Linger
    3776  SHM records
     899  SHM writes
      53  SMA allocator requests
       4  SMA outstanding allocations
   19984  SMA outstanding bytes
 5254284  SMA bytes allocated
 5234300  SMA bytes free
      41  Backend requests made
       1  N vcl total
       1  N vcl available
       1  N total active purges
       1  N new purges added
      41  HCB Lookups without lock
       3  HCB Lookups with lock
       3  HCB Inserts
     922  Client uptime
2
jjei

新規ユーザーとしてまだコメントできないので、ここで私の返事をします。

初心者にとって、1秒から1.3秒はそれほど大きな違いではなく、ミスが多すぎるようには見えないので、そのようにしています。同じコンテンツで多くのページリクエストをシミュレートするいくつかのテストを実行し、ヒット/ミスを監視します。また、同じサイトでVarnishなしでもう一度テストしましたか?

もう1つは、サーバーの使用可能なリソースに合わせてVarnishストレージのサイズを適切に設定したことを確認することです。これが多すぎると、明らかな理由でシステムを引きずることができます。

何らかの理由でDrupal 7を使用していませんか?Pressflow 7も現在利用可能です。

ブースト+ワニスを使用するオプションもあります。 http://www.trellon.com/content/blog/boosted-varnish-high-performance-caching-made-easy

1
Macronomicus