いいとこすぎて移住しちゃいました / LAMP壱岐
いいとこすぎて移住しちゃいました / LAMP壱岐
2015.07.30

ディレクターなら知っておきたいキャッシュサーバ「memcached」の基礎知識

Jack

こんにちは。ディレクターのジャックです。
入社してようやく3ヶ月が経ちました。月日が経つというのはあっという間ですね。

最近は、クライアント様との打ち合わせにもよく参加させていただいております。
その際に少なからず話題に上がるのは、技術の話。
たとえば、「システムのセキュリティを担保するためのサーバ構成は?」とか「このキャンペーンサイトの負荷対策ってどうしたら良い?」とかですね。

クライアント様との打ち合わせで技術的な話になった際に、「持ち帰ってエンジニアに確認します!」みたいなことにならないように、必要最低限の技術知識はディレクターにも必要になってきている感じがします。

そこで、今回はWebサイト構築では必要不可欠な負荷対策について簡単にお話したいと思います。
本日お話したいのは、memcached (memory cache daemon) についてです。

memcachedとは?

memcachedとは、データとオブジェクトをメモリ内にキャッシュするサーバで、データベースからのread回数を減少させる際に利用します。
特に、データベースを用いたWebサイトを高速化するためによく用いられます。

導入方法

さて、早速インストールしてみましょう。
今回のインストール環境は「Ubuntu 14.04」です。
Ubuntuのインストール方法や設定については、今回の記事では割愛させていただきます。

memcachedをインストールする

$ sudo apt-get install memcached
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  libcache-memcached-perl libmemcached
The following NEW packages will be installed:
  memcached
0 upgraded, 1 newly installed, 0 to remove and 15 not upgraded.
Need to get 66.7 kB of archives.
After this operation, 229 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ utopic/main memcached amd64 1.4.14-0ubuntu9 [66.7 kB]
Fetched 66.7 kB in 6s (10.2 kB/s)                                                                                               
Selecting previously unselected package memcached.
(Reading database ... 67907 files and directories currently installed.)
Preparing to unpack .../memcached_1.4.14-0ubuntu9_amd64.deb ...
Unpacking memcached (1.4.14-0ubuntu9) ...
Processing triggers for man-db (2.7.0.2-2) ...
Processing triggers for ureadahead (0.100.0-16) ...

起動の確認を行う

serviceコマンドを利用することで、現在起動中のサービスを確認することができます。memcachedが起動されていることを確認しましょう。

$ service --status-all | grep memcached
 [ ? ]  cryptdisks-early
 [ ? ]  killprocs
 [ + ]  memcached
 [ ? ]  ondemand
 [ ? ]  open-vm-tools
 [ ? ]  pppd-dns
 [ ? ]  rc.local
 [ ? ]  sendsigs
 [ ? ]  udev-finish
 [ ? ]  umountfs
 [ ? ]  umountnfs.sh
 [ ? ]  umountroot
 [ ? ]  virtualbox-guest-x11

設定ファイルを確認・編集してみる

続いて、設定ファイルを確認・変更してみましょう。
デフォルトの設定を利用するだけなら、特に編集作業を行う必要はありません。

$ sudo vi /etc/memcached.conf

実際の設定ファイルは下記となります。

# memcached default config file
# 2003 - Jay Bonci <jaybonci@debian.org>
# This configuration file is read by the start-memcached script provided as
# part of the Debian GNU/Linux distribution. 

# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d

# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log

# Be verbose
# -v

# Be even more verbose (print client commands as well)
# -vv

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default connection port is 11211
-p 11211 

# Run the daemon as root. The start-memcached will default to running as root if no
# -u command is present in this config file
-u memcache

# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
-l 127.0.0.1

# Limit the number of simultaneous incoming connections. The daemon default is 1024
# -c 1024

# Lock down all paged memory. Consult with the README and homepage before you do this
# -k

# Return error when memory is exhausted (rather than removing items)
# -M

# Maximize core file limit
# -r

memcached の再起動を行う

設定ファイルの変更をしたら、memcachedの再起動を行って下さい。

$ sudo service memcached restart
  • 1
  • 2