wiki:pne-sysadmin
 ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Version 18 (modified by tejimaa, 12 years ago) (diff)

--

TOC(titleindex,heading=リンク,pne)?

OpenPNEサーバ運用

OpenPNEサーバ運用コミュニティで議論された仕様を紹介します。

http://sns.openpne.jp/img.php

OpenPNEサーバ運用

とにかくチューニング!

  • 変更頻度の低い項目(管理画面設定値)をmemcached等にキャッシュ保存

OpenPNEを速くするには?

プロジェクトチケット

component=pne-sysadmin

#157
データの暗号化をMySQLに任せる
#305
c_imageのMAX_ROWS設定
#352
メンテナンスモード時には、デイリーメールや携帯メール投稿が動作しないようにする
#509
エントリーポイントを増やしても性能劣化が起きない設計にする
#561
ichioku.pne.jpに負荷をかける仕組みを考える
#562
OpenPNE2.6.5(PNEManager環境) SLOWLOG SELECT d.c_diary_id, d.subjectが重い
#597
単一REQUEST=>RESPONSEシーケンス内で関数の結果をキャッシュする仕組みを作る。
#599
各画面にphpの実行時間を表示
#603
config.php で memory_limit=32Mを指定する
#614
CentOS5のセットアップをしてOpenPNEを設置してみる。
#875
負荷シナリオ JMeterでの稼動確認
#1003
トピック検索の速度を改善する
#1013
DB接続ライブラリをPEAR::DBからADOdbへ置き換えてみる
#1037
FUNCTION_CACHEをmemcachedに保存
#1055
c_imageテーブルのMAX4GB問題を解決する
#1056
→ookura ADODB版OpenPNEの負荷を測定する
#1106
sessionをmemcachedに保存
#1122
デイリーメール送信履歴がわかるようにしてほしい
#1126
メンテナンス文言に柔軟性を持たせる
#1127
UPGRADEスクリプトが中断しないようにする
#1132
SNSオーナーによる変更が出来ないプロフィール項目を作りたい
#1151
負荷高いSNSのスロークエリログを元にしたSQLチューニング
#1206
PV集計用のApacheリクエスト記号の設定への対応
#1208
DB分散環境で、あしあとメール・コミュニティ書き込みメールが届かなかったり、2通以上届いてしまう場合がある
#1432
dashboardの重いクエリーを修正する
#1440
携帯IP制限の設定をconfig.phpから外す
#1484
データが一定量を超えるとFatal errorが発生する

ボトルネックを発見する

  • 検証用のテスト環境を準備
  • JMeterによる限界性能テスト環境を準備
  • ボトルネックの検証
  • ボトルネックを本Wikiに掲載する

クエリの改善

http://slashdot.jp/journal.pl?op=display&uid=4&id=26710

転送量の削減

PCスタイルシートの分離配送

PC版のHTML内に埋め込まれているスタイルシートは分離配送が可能なので、分離してキャッシュを効かせる。これで転送量を減らす。

<style type="text/css">
<!--
/*枠線要素*/
.border_00 { border: #F7F7F7 1px solid ; }

で始まる部分を分離

#1036

ktaiキャッシュを効かせる

携帯のキャッシュをHTTPレベルで効かせることで、ページ遷移ごとの読み込み(特に「戻る」の場合)時のデータ転送量を削減する。

DB接続ライブラリ選定

OpenPNEをスピードアップさせるために、DBの接続ライブラリを現在のPear:DBから変更する。

  • ADODB ※PHP5の普及まで
  • PDO(最速でOpenPNE2.11以降で対応を検討)※PHP5環境の普及後

SQLキャッシュ

MySQLのクエリーキャッシュを使わずに、PHPのレベルでSQLキャッシュをかけて、負荷を軽減する。

現状ではADODBに組み込まれている、キャッシュ機構を取り込んでいく予定。

単一リクエスト・レスポンス内のSQLキャッシュ

c_memberデータなど、単一のリクエストレスポンス内で行うSQLキャッシュ

単一リクエストを超える特定時間のSQLキャッシュ

c_snsconfig等比較的長期間キャッシュを保持して良いデータに対するSQLキャッシュ

memcached

php セッションをmemcachedに保存

ADODBクエリーキャッシュをmemcachedに保存

OpenPNEのその他のファイルキャッシュをmemcachedに保存

ノート