MemcachedによるWebサービスの高速化

Similar documents
GangliaによるHadoopクラスタの監視

HeartCoreインストールマニュアル

HP OpenSource ブループリント

HeartCoreインストールマニュアル(PHP版)

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

HeartCore(PHP 版 ) インストール手順について説明いたします なお 本資料は 例として下記内容を前提として説明しております 環境情報 対象 OS: Linux ( ディストリビューション : Red Hat Enterprise Linux Server) APサーバ : Apache

VB実用Ⅲ⑩ フリーデータベースⅡ

目次 1. はじめに 本文書の目的 前提条件 略語 事前準備 ホスト名の名前解決 Linux 版パッケージ システム要件 ソフトウェア要件 パッケージ構成

CLUSTERPRO MC StorageSaver 2.2 for Linux リリースメモ 2017(Apr) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル 補足事項 注意事項

3 パッケージからのインストール

CLUSTERPRO for Linux MySQL HowTo

Installation Guide for Linux

Microsoft Word - MyWebPortalOffice_Levelup.doc

MxLogonサーバサイドツールキット用UI

HPE ProLiant Thin Micro TM200 サーバー Microsoft Windows Server インストール手順

CLUSTERPRO MC StorageSaver 1.1 for Linux リリースメモ 2015(Jun) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル 補足事項 注意事項

CLUSTERPRO MC RootDiskMonitor 1.1 for Linux リリースメモ 2013(Sep) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル

PowerPoint Presentation

InfiniDB最小推奨仕様ガイド

CLUSTERPRO MC ProcessSaver ApsEdition 1.0 for Linux リリースメモ 2012(Sep) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル 補足事項 注意事項

SHOP99 99 SHOP サイトにデータベースを構築 phpmyadminの設定 1 ー 監修 Yours YoursCompany Company 監修 Yours

Microsoft PowerPoint - mwpro2_faq_ ppt

CLUSTERPRO MC ProcessSaver 2.1 for Linux リリースメモ 2016(Mar) NEC Corporation ライセンス パッケージのインスト ル セットアップ マニュアル 障害発生時の手順 補足事項 注意事項

スライド 1

Microsoft Word - tutorial3-dbreverse.docx

Silk Central Connect 15.5 リリースノート

Oracle Enterprise Linux 5における認証

SLAMD導入手順

Microsoft Word - PGI WorkstationServer事前準備 doc

HP Device Manager4.7インストール・アップデート手順書

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

OpenLAB Data Store Release Notes

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

CLUSTERPRO MC RootDiskMonitor 2.3 for Linux HW-RAID 監視機能 リリースメモ 2018(Jun) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル

3 ディストリビューション・パッケージからのインストール

リバースプロキシー(冗長構成)構築手順

Samba Install and Update Guide

untitled

Microsoft Word - Outlook Web Access _IE7_ Scenario.doc

Microsoft SQL Server 2016 インストール手順書 (Standard) この文書は SQL Server 2016 のインストール手順について簡潔にまとめたもので Microsoft SQL Server 2016 Books Online に記述されている一部を抜粋した内容で

CLUSTERPRO SSS 動作環境編

PostgreSQL Plus 管理者ガイド

1. 検証概要 目的及びテスト方法 1.1 検証概要 PostgreSQL はカルフォニア大学バークレー校で開発された POSTGRES, Version 4.2 をベースにしたオープンソースのリレーショナルデータベース管理システムです PostgreSQL はオープンソースでありながら 商用リレー

Calpont InfiniDBマルチUM同期ガイド

Red Hat Enterprise Linuxのcron(8)デーモンにデフォルト定義されたtmpwatch命令の動作による、WebOTXのトラブル対処方法

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

Red Hat Enterprise Linux 6 Portable SUSE Linux Enterprise Server 9 Portable SUSE Linux Enterprise Server 10 Portable SUSE Linux Enterprise Server 11 P

提案書

IceWall Remote Configuration Managerのご紹介

PowerPoint Presentation

内容環境... 3 対応 OS の変更... 3 関連アプリケーションの追加... 4 機能追加... 5 グラフ機能... 5 稼働率... 8 サービス一括削除 自動復旧エスカレーションコマンド AWS カスタムメトリックス監視 NRPE 任意監視... 11

CLUSTERPRO MC RootDiskMonitor 2.3 for Linux リリースメモ 2018(Jun) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル

セットアップカード

目次 はじめに... 3 仮想化環境上の仮想マシン保護方法... 4 ( 参考 )Agent for Virtual Machines での仮想マシンのバックアップ... 8 まとめ 改訂履歴 2011/04 初版リリース 2012/10 第 2 版リリース このドキュメントに含まれる特

2013年『STSSスキルコミュニティ』 テーマ別Kickoff資料

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows インストールガイド 2013(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

Microsoft Word - ESX_Setup_R15.docx

Attain3 インストール説明書

CLUSTERPRO X for Windows PPガイド

PowerPoint Presentation

WinXp-Rmenu

1. 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は JCA 仕様準拠のコンテナとして多くの J2EE 準拠アプリケーションサーバーについて動作

"ソフトウェア カフェテリアサービス向けソフトウェア説明書

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

システム要件 Trend Micro Safe Lock 2.0 SP1 Trend Micro Safe Lock 2.0 SP1 エージェントのシステム要件 OS Client OS Server OS Windows 2000 (SP4) [Professional] (32bit) Wind

Veritas System Recovery 16 Management Solution Readme

もくじ Linux サブスクリプションサービスとは... 2 Linux サブスクリプションサービス概略仕様... 3 Linux サブスクリプションサービスのライセンス... 4 本書の内容に関しては将来予告なしに変更することがあります MAGNIA は東芝デジタルソリューションズ株式会社の登録商

1 目次 本書の構成 2 体験版申請用総合ソフトの機能 3 申請用総合ソフトとの相違点 体験版申請用総合ソフト ver.3.0 は, 本番用の申請用総合ソフト (3.0A) の機能に擬似データを加えたものです

Sophos Enterprise Console

スライド 1

Stepguide15_shisa_guard.indd

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

appli_HPhi_install

『PCA自動バックアップオプション』セットアップ説明書

MotionBoard Ver. 5.6 パッチ適用手順書

ADempiere (3.5)

目次 第 1 章はじめに... 3 第 2 章ネットワーク設定 DNS の設定 アウトバウンド HTTPS 接続の許可 アウトバウンド SMTP/POP 接続の許可... 4 第 3 章 JDK への追加ライブラリインストール

アーカイブ機能インストールマニュアル

インストールガイド ネットワーク PA システムマネージャー AI-1000SM このたびは TOA ネットワーク PA システムマネージャーをお買い上げいただき まことにありがとうございます 本書は AI-1000SM ネットワーク PA システムマネージャーをセットアップするための手順書です 正

Microsoft Word - CBESNet-It連携ガイドver8.1.doc

Microsoft PowerPoint - Module_pub_ _v1.02.ppt

Dell System Services and Diagnostic Tools Version 7.0 クイックインストールガイド

Trend Micro Safe Lock 2.0 Patch1 管理コンソールのシステム要件 OS Windows XP (SP2/SP3) [Professional] Windows 7 (SP なし /SP1) [Professional / Enterprise / Ultimate] W

Microsoft PowerPoint - MySQL-backup.ppt

CLUSTERPRO MC RootDiskMonitor CLUSTERPRO MC StorageSaver for BootDisk 仮想環境 ( ゲスト OS) での設定手順 (Linux 版 Windows 版 ) 2017(Apr) NEC Corporation 仮想環境 ( ゲスト

サーバセキュリティサービス 導入手順書 Deep Security 9.5SP1 (Windows) プロキシ経由編

リバースプロキシー (シングル構成) 構築手順

XOOPS Cube インストールマニュアル

Slide 1

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

WithMIRACLE登録方法

ご注意 このソフトウェアの著作権は 株式会社日積サーベイにあります このソフトウェアおよびマニュアルの一部または全部を無断で使用 複製することはできません このソフトウェアおよびマニュアルは 本製品の使用許諾契約書のもとでのみ使用することができます このソフトウェアの仕様およびマニュアル記載の内容は

目次 本書の取り扱いについて... 3 事前準備... 4 MultiPoint Server 2011 OEM 版のインストール (OS リカバリー用のディスク領域を使う場合の起動方法 )... 5 MultiPoint Server 2011 OEM 版のインストール (OS リカバリー用のメデ

Cuoreテンプレート

Copyright 2007, 2008 Hewlett-Packard Development Company, L.P. Windows は米国 Microsoft Corporation の米国およびその他の国における登録商標です 本書の内容は 将来予告なしに変更されることがあります HP 製

WebARENA SuiteX V2 EC-CUBE 2.13 インストールマニュアル ( 標準 MySQL+ 非 SSL ) 作成 :2014 年 2 月 Ver.1.1

Microsoft Word - esm_update_jp.doc

1. はじめに (1) 本書の位置づけ 本書ではベジフルネット Ver4 の導入に関連した次の事項について記載する ベジフルネット Ver4 で改善された機能について 新機能の操作に関する概要説明 ベジフルネット Ver4 プログラムのインストールについて Ver4 のインストール手順についての説明

Transcription:

日本 HP OpenSource/Linux 技術文書 Memcached による Web サービスの高速化 日本ヒューレット パッカード株式会社 2011 年 6 月 17 日

目次 [ 本ドキュメントについて ]... 4 Memcached について... 5 一般的な memcached のシステム構成... 5 実際の memcached のシステム構成... 6 システム構成... 6 MySQL サーバーの準備... 7 2

図表目次 図 1. memcached サーバーを取り入れた LAMP スタックのシステム構成例... 5 図 2. 64 台の memcached サーバーを取りいれた LAMP 構成例... 6 図 3. Memcached サーバー on HP ProLiant SL6500 のシステム構成例... 7 図 4. MySQL に作成されたデータベース testdb 上のテーブル tbl2 を複数の memcached サーバーにキャッシュする mc.py... 10 3

[ 本ドキュメントについて ] 本ドキュメントでは MySQL サーバーのみでの作業を (MY) Memcached サーバーのみでの作業を (MC) MySQL サーバーと Memcached サーバー両方での作業を (MY,MC) と記すことにします 例 1) ファイルをコピーします (MY) と記載してあるものは MySQL サーバーだけでファイルをコピーするという意味になります 例 2) rpm コマンドでパッケージをインストールします (MY,MC) と記載してあるものは MySQL サーバーと Memcached サーバーの両方で rpm コマンドを使ってインストールを行うという意味になります コマンドラインでの入力が長く紙面の都合で折り返して記載する場合は 下記のように \ 記号を挿入して複数行にわたって記載しています 複数行にわたって記載されていても実際には 1 行で入力するものは その記述の最後に ( 実際には 1 行で入力 ) を挿入しています 例 3) > grant all privileges on testdb.* to root@localhost \ identified by 'password123' with grant option; 本ドキュメントの内容については充分チェックをしておりますが その正確性を保証する物ではありません また 将来 予告なしに変更することがあります 本ドキュメントの使用で生じるいかなる結果も利用者の責任となります 日本ヒューレット パッカード株式会社は 本ドキュメントの内容に一切の責任を負いません 本ドキュメントの技術情報は ハードウェア構成 OS アプリケーションなど使用環境により大幅に数値が変化する場合がありますので 十分なテストを個別に実施されることを強くお薦め致します 本ドキュメント内で表示 記載されている会社名 サービス名 商品名等は各社の商標又は登録商標です 本ドキュメントで提供する資料は 日本の著作権法 条約及び他国の著作権法にいう著作権により保護されています 4

本ドキュメントは MySQLのデーータベースをキャッシュする memcached をHP ProLiantサーバー上に構築し アプリケーションサーババーからmemcached が提供するキャッシュデータをアアクセスできるようにするガイドです memcached は現時点でのリリースの最新版です Memcached はオープンソースで提供されるソフトウェアですのので 本番商用利用についてはサポート面やバグフィィックス等の不具合対応について検討が必要とななりますので十分ご注意ください Memcached について Memcached は データベースにに保存されている Web コンテンツをメモリ上にキャャッシュすることによりスループットを改善するオオープンソースソフトウェアです MySQL や PostgreSQL データベースのボトルネックの解消に利用さされます 一般的に Web ブラウザを閲覧するユーザザーがクリックを行って 5 秒以上経過すると他のササイトに移動してしまう傾向があります この課題題に対応するため Web サーバーの応答性能を向上上させる必要があり ユーザーアクセスが多い場合 memcached によるスループット向上が欠かせませせん Memcached を導入しない解決策の一つは 負負荷分散装置の導入です MySQL や PostgreSQL データベースには マスター スレーブ方式をとるこことがありますが このマスタースレーブ方式でボボトルネックが発生する可能性があります MySQL や PostgreSQL では マスターサーバーがユーザーののトランザクションの書き込み処理を行い 複数ののスレーブサーバーが読み込み処理を担当します 読み込みが多いシステムでは MySQL や PostgreSQL のスレーブサーバーを増やすことでスループットトを向上させる試みがありますが データベースササイズが肥大化 低速になるというボトルネックをを抱えており Web サービスの応答速度の低下を招くく問題があります LAMP(Linux/Apache/MySQL/PHP) の構成において Memcached を利用することで読みみ込み性能の向上が可能です 一般的に SQL でも高高速化手法が存在しますが SQL キャッシュは分散散データベースには対応していません 一方 memcached は分散データベースで高速化できるように設設計されています Memcached は Wikipedia facebook Myspace Livejournal Digg Slashdot などの Web サイトで採用されており 非常に大規模模なシステムでも実用に耐えるものとなっています 一般的な memcached のシステム構成 memcachedはデータベースサーババーのデータをメモリ上にキャッシュするため デデータベースと並列に並べます データベースのデデータをmemcached サーバーにキャッシュするためにには アプリケーションサーバー側で memcached サーーバーにデータをセットするようにします 図 1. memcached サーバーを取り入れた LAMP スタックのシステム構構成例 5

実際の memcached のシステム システム構成 実際には マスターデータベースとスレーブデータベースからなる マスターデータベースとスレーブデータベースからなる分散データベースや データベースや HA クラ スターを構成したデータベースシステムの したデータベースシステムの3 層構成に 高密度サーバーをmemcached memcached に実装し アプリケーションサーバーで memcached サーバーにキャッシュするようにアプリケーションを 構成します 以下は memcached memcached サーバーを 64 台で構成した場合のシステム構成例 構成例です 図中 の右下に HP BladeSystem による memcached サーバーが構成されており データベースのスレー ブノードのデータをキャッシュします ブノードのデータをキャッシュします memcached サーバーへのキャッシュを行うアプリケー サーバーへのキャッシュを ションは 図中の中央の HP BladeSysytem のアプリケーションサーバーで実行 実行されます 図 2. 64 台の の memcached サーバーを取りいれた LAMP 構成例 システム構成 以下にMemcachedをインストールする をインストールする環境を示します ハードウェア OS memcached MySQL : HP ProLiant SL6500 SL6500シリーズ : Red Hat Enterprise Linux 5.6 x86-64 MySQLサーバー Memcached Memcachedサーバー : 1.4.5 : 5.0.77 (RHEL OS OSに付属のもの) します 今回の構成ではMySQLサーバーの可用性は考慮 考慮していないため 以下にハードウェア外観を示します MySQLサーバーの障害時のデータロストが のデータロストが発生するSPOFが存在する点にご注意ください ください またアプリ ケーションサーバーを別途用意 別途用意していない点も本番環境とは異なることに注意して して下さい 6

Proof Of Concept 構成 MySQL サーバーは 1 台構成 MySQL サーバーの可用性はない MySQL は RHEL OS 付属のものを使用しており テスト動作作確認用 左図はアプリケーーションサーバーと MySQL サーバーが兼用になっているが 本番環境では分分ける必要がある Memcached は RPM パッケージを利用 Memcacahed のキャッシュサイズは 10GB を設定 図 3. Memcached サーバー on HP ProLiant SL6500 のシステム構構成例 MySQL サーバーの準備 本ドキュメントに記載している memcached サーバーの設定手順を行う前に MySQLサーバーの OSのインストールと事前準備を済ませせておく必要があります データベースサーバーとなるママシンに MySQL をインストールします (MY) # rpm vhi mysql-5.0.77-4.el l5_5.4.x86_64.rpm mysql-server-5.0.77-4.el5_5..4.x86_64.rpm # chkconfig mysqld on # service mysqld start 依存関係を満たすため 以下の RPMパッケージを入手します (MC) http://packages.sw.be/perl-n Net-SSLeay/perl-Net-SSLeay-1.36-1.el5.rfx.x86 64.rpm Red Hat Enterprise Linuxのインストール DVDから以下のパッケージをインストーールします (MC) # rpm -vhi perl-io-socket-ss SL-1.01-1.fc6.noarch.rpm memcached RPMパッケージとそれれに関連する RPMパッケージをインストールします 本ドキュメントでは memcached へのアクセスにに利用するアプリケーションは Pythonで記述するとと想定し python-memcached RPMパッケーージをインストールします (MC) # rpm -vhi perl-net-ssleay-1 1.36-1.el5.rfx.x86_64.rpm # rpm -vhi perl-termreadkey- -2.30-4.el5.x86_64.rpm # rpm -vhi perl-guard-1.021- -1.el5.rf.x86_64.rpm # rpm -vhi compat-libevent-1 11a-3.2.1-1.el5.rf.x86_64.rpm # rpm -vhi perl-common-sense e-3.0-1.el5.rf.x86_64.rpm # rpm -vhi perl-ev-3.9-1.el5 5.rf.x86_64.rpm 7

# rpm -vhi perl-json-xs-2.30-1.el5.rf.x86_64.rpm # rpm -vhi perl-json-2.50-1.el5.rf.noarch.rpm # rpm -vhi perl-anyevent-5.240-1.el5.rf.noarch.rpm # rpm -vhi perl-yaml-0.72-1.el5.rf.noarch.rpm # rpm -vhi libmemcached-0.31-1.1.el5.x86_64.rpm # rpm -vhi memcached-1.4.5-1.el5.rf.x86_64.rpm # rpm -vhi python-memcached-1.47-1.el5.noarch.rpm memcached のパラメーターを設定します 設定ファイルは /etc/sysconfig/memcached になります /etc/sysconfig/memcached ファイルの中の CACHESIZE でキャッシュするメモリ容量を指定します 単位はギガバイトになります 例えば CACHESIZE="8192" と設定すると 1 台の memcached サーバーで 8GB のメインメモリをキャッシュ領域として利用することになります (MC) # vi /etc/sysconfig/memcached PORT="11211" USER="nobody" MAXCONN="1024" CACHESIZE="10240" OPTIONS="" memcached サーバーで memcached サービスを開始します (MC) # service memcached start MySQL サーバーを設定します 今回は memcached の簡易テスト用途ですので MySQL は Red Hat Enterprise Linux に含まれる標準の MySQL を利用します MySQL のサービスを起動します (DB) # service mysqld start MySQL の管理者のパスワードを設定します (MY) # mysqladmin -uroot -p'' password 'password123' MySQL にテスト用のデータベース testdb を作成します (MY) # mysqladmin -uroot -ppassword123 create testdb MySQL のデータベース testdb 内にテスト用のテーブル tbl2 を作成します (MY) # mysql -uroot -ppassword123 testdb >grant all privileges on testdb.* to root@localhost \ identified by 'password123' with grant option; >create table tbl2(id int, name char(10)); >insert into tbl2 values(1,"test1"); >insert into tbl2 values(2,"test2"); >insert into tbl2 values(3,"test3"); >flush privileges; >quit; # 8

データベース testdb にあるテーブル tbl2 が正常に作成されているかを確認します (MY) # mysqldump -uroot -ppassword123 testdb MySQL のデータベース testdb 上に作成したテーブル tbl2 のデータを memcached にキャッシュするための Python スクリプトを作成します 以下のスクリプト例では memcached サーバーが hd01~hd08 の 8 台の物理サーバーを想定しています (MY) # vi /root/mc.py #!/usr/bin/env python import sys, MySQLdb, memcache, commands, cgi hd01="172.16.1.1" hd02="172.16.1.2" hd03="172.16.1.3" hd04="172.16.1.4" hd05="172.16.1.5" hd06="172.16.1.6" hd07="172.16.1.7" hd08="172.16.1.8" USER="root" PASS="password123" TIME=20 #20sec DBNAME="testdb" TABLENAME="tbl2" m = memcache.client([ "hd01:11211", "hd02:11211", "hd03:11211", "hd04:11211", "hd05:11211", "hd06:11211", "hd07:11211", "hd08:11211" ]); try: sql=mysqldb.connect( host ="localhost", user =USER, passwd =PASS, db =DBNAME) except MySQLdb.Error, e: print "Error %d: %s" % (e.args[0], e.args[1]); sys.exit (1) t = m.get(tablename) if not t: selectdb="select * from " + TABLENAME cursor=sql.cursor(); cursor.execute(selectdb) row=cursor.fetchall() 9

for r in row: print "%d, %s" % (r[0], r[1]) m.set(tablename,row,time) print "Data updated into memcached" else: for row in t: print "%d, %s" % (row[0], row[1]) print "Data loaded from memcached" 図 4. MySQL に作成されたデータベース testdb 上のテーブル tbl2 を複数の memcached サーバーにキャッシュする mc.py MySQL サーバー上の testdb に作成された tbl2 のデータをキャッシュするために mc.py を実行します 通常はアプリケーションサーバー上で実行しますが 今回は システム構成の都合上 MySQL データベースサーバー上で実行します mc.py は MySQL に作成された tbl2 のデータが memcached サーバーにセットされると Data updated into memcached と表示するようにプログラムされています (MY) # python /root/mc.py Data updated into memcached スクリプト mc.py によって MySQL のデータを memcached サーバーにキャッシュしたかどうかを確認します Data loaded from memcached という出力は mc.py で記述したもので memcached サーバーからデータを取得した場合に表示されるようにプログラムされています (MY) # python /root/mc.py 1, Test1 2, test2 3, test3 Data loaded from memcached memcached サーバー上で memcat コマンドを使って memcached サーバーがデータをキャッシュしているかどうかを確認することができます (MC) # memcat --server=172.16.1.1 tbl2 ((L1L S'Test1' t(l2l S'test2' t(l3l S'test3' ttp1 memcached サーバー上で memcat コマンドを使ってデータが表示されない場合はキャッシュされていないことを意味します (MC) # memcat --server=172.16.1.2 tbl2 以上 10