「linux」カテゴリーアーカイブ

linuxに関係する記事

ECCUBEでMySQLRouterを使って負荷分散

MySQLRouterで負荷分散

久しぶりの技術ネタ。ECCUBE-MYSQLの構成において、MySQLの接続を負荷分散する。

通常、負荷分散といえば、WEBサーバーに対して負荷分散を行い、WEBアクセスに対する負荷を軽減させるために用いることが多いが、今回はDBに対する処理を分散させることが目的。

負荷分散はMySQLRouter

負荷分散はMySQLRouterを使用。様々な負荷分散方法があるようだが、検証の結果MySQLRouterが一番シンプルで使いやすかった。フェイルオーバーも有効で拡張性も高い。ドキュメントが全て英語なのと、導入事例が少なかったのが少々難儀ではあるが、できないことはないはず。

構成イメージ

構成イメージとしては、WEBサーバー内にMySQLRouterを入れ、レプリケーションしているDBへの接続を負荷分散する。MySQLはDBレプリケーションで同期している状態。

分散ポリシーの決定

負荷分散を考える上でポリシー決めは重要である。負荷バランスを均等にするために、どういったルールに基づいて負荷分散させるのか。

今回の負荷分散は以下のように定義

  • トランザクション系処理→Master参照
  • トランザクション中の参照処理→Master参照
  • それ以外の参照処理→Master/Slave負荷分散

MySQLレプリケーションの仕様上、Slaveを更新するのはご法度なため、上記のような定義とした。あとは、EC-CUBEの中でどうやって処理を振り分けるのか。

SC_Queryをカスタマイズ

SC_Query内部をカスタマイズして、負荷分散ロジックを追記。

if ( $this->isTransaction() ) {

//分散しない

} else {

//分散させる

}

単純にこのような分岐処理を書いただけ。意外と簡単にできた。

分散結果は?

バッチリ負荷分散されている!単純な参照処理はDB2台に均等に割り振られるが、更新系になると1台に集中する。理想的な負荷分散に成功した!

完璧です。想像通りの動きになっている。あとは性能検証を行い、チューニングを施せば本番運用に耐えうるものに仕上がるだろう。

Dell PowerEdge T320 No operating system is currently…

Dell PowerEdge T320 にCentOS6.5をインストール時に起きたプチトラブル
isoファイルを以下のURLからダウンロードして、DVDに書込。この時のライティングソフトはWindows標準

http://www.centos.org/

作成したDVDをサーバにセットして起動。※もちろんファーストブートをDVDに設定済み。

しかし、表示されたのは、、、

No operating system is currently installed on this computer

DVDのisoファイルを読み込めません!と言っています。

おかしい。そんなはずはない!DVDには間違いなく書き込めている。
BIOS設定などを見直し、試行錯誤するも改善されず。

困り果ててGoogle先生に聞いてみると、有益な情報が!
今回DVDに書き込んだのはisoファイルなのですが、ライティングソフトによって、得手不得手があるのだとか。
ライティングソフトも人が作ったものなので、それなりにがあったんですよ!

▼参考になりました
http://ayufishing.blog.fc2.com/blog-entry-9.html

↑の記事にあった「Active ISO Burner」でDVDを再作成して、再度読み込ませたところ、無事インストーラー画面が表示されました!

めでたしめでたし(^^)



oracleのセッション数が知りたい

参考にさせて頂いたサイト
http://oracle.se-free.com/dic/E1_session.html

・アクティブなプロセス数
select count(*) from V$PROCESS

・現在のセッション情報
select count(*) from V$SESSION;

・これも役立つ
select sessions_max, sessions_current, sessions_highwater from v$license;

セッション以外のプロセスもV$PROCESSを参照すればわかるらしい。
チューニングに役立ちますねー。



Clip to Evernote

ハピーエコタウンプロジェクト
from 鯖江NPOサポート

↓ ランキングに参加してます。クリックをお願いします。
にほんブログ村 地域生活(街) 中部ブログ 福井県情報へにほんブログ村 IT技術ブログへ
にほんブログ村にほんブログ村 旅行ブログ 沖縄旅行へ
にほんブログ村

tomcatのプロセス数が知りたい

tomcatのプロセス数を調べる方法

1.プロセス数を取得します。
ps -ef | grep tomcat

2.移動します
cd /proc/(プロセス数)/task

3.数をカウントします
ls -l | wc -l

4.5秒おきにカウントして表示します。
while [ 1 ]; do ls -l | wc -l; sleep 5; done

勉強になりますね。

コマンド知っとくといろいろ活用できます。



Clip to Evernote

ハピーエコタウンプロジェクト
from 鯖江NPOサポート

↓ ランキングに参加してます。クリックをお願いします。
にほんブログ村 地域生活(街) 中部ブログ 福井県情報へにほんブログ村 IT技術ブログへ
にほんブログ村にほんブログ村 旅行ブログ 沖縄旅行へ
にほんブログ村

tcpdumpでhttp情報を調べる

linuxのtcpdumpでHTTPの情報を調べる方法
こちらを参考にさせていただきました。
※tcpdumpについてはこちら

・コマンド
tcpdump -s 1500 -nxX port 80 -w /tmp/tcpdump2.log
tcpdump -s 1500 -nxX port 80 -r /tmp/tcpdump2.log > /tmp/tcpdump_tr2.log

0x0180: 436f 6f6b 6965 3a20 6350 6a4e 616d 653d Cookie:.cPjName=
0x0190: 714e 3373 5654 3547 382b 6258 5674 3742 qN3sVT5G8+bXVt7B
0x01a0: 4b34 6779 6e4f 2b50 5842 6d73 6d49 672f K4gynO+PXBmsmIg/
0x01b0: 3b20 5f5f 7574 6d61 3d32 3934 3336 3639 ;.__utma=2943669
0x01c0: 2e31 3634 3734 3938 3231 312e 3132 3934 .1647498211.1294
0x01d0: 3733 3534 3930 2e31 3239 3535 3730 3631 735490.129557061
0x01e0: 392e 3132 3935 3539 3037 3832 2e33 3b20 9.1295590782.3;.

サーバ内部に渡されるパラメータをチェックしたい場合に有効です。


ハピーエコタウンプロジェクト
from 鯖江NPOサポート

↓ ランキングに参加してます。クリックをお願いします。
にほんブログ村 地域生活(街) 中部ブログ 福井県情報へ