Drupalにおいて、最も簡単なロギング方法はDatabase logging(dblog)モジュールを有効にすることですが、Database loggingはその名の通りDatabaseにログを記録します。
閲覧時でもDatabaseにWriteする可能性があるため、ボトルネックとなります。
Database loggingモジュールではなくSyslogモジュールを利用する
そこで、最も推奨されている方法として、Database loggingモジュールではなくSyslog(syslog)モジュールを利用する方法です。
Syslogモジュールはログの記録先をシステムログに書き込みます。
Syslogモジュールを有効にする
- Syslogモジュールを有効にします。
- Databaase loggingが有効になっている場合は、無効にし、アンインストールします。
- Syslogの識別ID、Syslogのファシリティ、システムログのフォーマットを指定します。
- ログの書き込み場所はOSのSyslog設定に依存します。
Centosの場合、特に設定を変更しなければ「/var/log/messages」に書き込まれます。
Statisticsモジュールについて
ページ単位の閲覧履歴を知りたい。という要望は多いです。その際、短絡的にStatisticsモジュールを有効にしてしまうと、これまたデータべースに記録するモジュールですので、Databaseへ負担をかけます。
Google Analyticsなどの解析ツールを利用することで余計な負荷を軽減します。
Memcacheによるデータベースアクセスの抑制
Memcacheを利用することでデータベースの負荷を軽減します。
サーバーにMemcachedをインストール
下記手順でMemcacheを利用可能にします。
- Memcached Serviceをインストール&自動起動を設定します。
- Memcache PECLエクステンションをインストールします。
- Drupal Memcacheモジュールをダウンロードします。
(モジュールを有効にする必要はありません) - 下記内容を settings.phpに挿入します。
$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc'; $conf['cache_backends'][] = $conf['lock_inc'] = 'sites/all/modules/memcache/memcache-lock.inc'; $conf['cache_default_class'] = 'MemCacheDrupal'; $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; $conf['memcache_servers'] = array( 'server-name:port#' => 'default', );
お問い合わせカテゴリ:
見積りカテゴリ: