Version 19 (modified by 15 years ago) (diff) | ,
---|
TOC(titleindex,heading=リンク,pne)?
OpenPNEサーバ運用
OpenPNEサーバ運用コミュニティで議論された仕様を紹介します。
とにかくチューニング!
- 変更頻度の低い項目(管理画面設定値)をmemcached等にキャッシュ保存
OpenPNEを速くするには?
- eAcceleratorを導入する
- DBのメモリを増やす
プロジェクトチケット
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 ; }
で始まる部分を分離
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キャッシュ