d3pipesのスピードを上がるのは
投稿者: windjet | 投稿日時: 2010/2/14 19:29 | 閲覧: 11903回
こんにちは、今d3pipes0.68bを使っているところです。いろいろの情報を自動的に取ってくれて、すばらしいモジュールだと思います。
わたしのところ、d3pipes三つを複製して、パイプ25本ぐらいを作ったの、ということは一つのd3pipesに8本ぐらいのパイプがあることです。今の段階では、パイプ1本にデータ100件ぐらいが保存されたんです(実際の運営なら、1パイプに1000件データがあること想定)。
ただし、モジュールのメニューをクリックすると、モジュールトップ画面が表示されるまで、十秒以上もかかります(ブロックは非同期で設置)。でも、その後、子メニュー(パイプのメニュー)をアクセスするのは、正常で速いです。もちろん、サーバとデータの関係もあるし、ここには、d3pipesの仕組みから、検討したいと思います。
1)もしかして、d3pipesモジュールのメニューをアクセスごとにそのd3pipes下のすべてのパイプの外部更新を確認しに行くのか?それなら、重くなるのは、納得できます。ただ、このとき、もし保存設定あるの場合、外部更新を確認しなくて、直接にDBから取ってくるなら、速くなると思います、パイプ作成の時点で一回更新を確認すれば、いつもDBにデータがあるはずです。こういう仕様変更はできますか?どうやってソースを修正すればよいのか?
2)d3pipesはどのくらい頻繁に更新を確認していますか?設定からは見えないです、ところで、Google リーダーでは、約 1 時間に 1 回確認します。わたしの場合、なるべく両方のサーバに負担をかかないように、4時間に 1 回も十分です、こちらの修正はどうすればいいですか?
3)キャッシュを使えば、画面の表示も速くなると思います、でも、設定場所は三つがありますので、それぞれの関係は分かりません。一番目は一般設定ところの”外部取得キャッシュ期間 (秒) ”、デフォルト値は”600”、二番目はパイプ管理ところの”この時点のキャッシュ(trust/cache)”、デフォルト値は”3600”、三番目は互換モジュールの全般設定のところの”モジュール・キャッシュ”設定、デフォルト値は”キャッシュなし”。もし、画面の表示速度は第一と考えるなら、どうやて組み合わせて設定すればよいですか?
4)パイプ管理のところ、ローカル保存のオプションで”切抜きから次へ渡す最低エントリ数”はどういう意味ですか?(この質問は以前出しましたけど、回答が出ませんので、ここに纏めて再提出させてもらいます)
5)ほかにd3pipesのスピードを上がる方法はありますか?
以上五つの質問、誰か教えていただけませんか?全部の質問ではなく一つの質問を回答できる方があるならも喜びます、ぜひお願いします。
環境:
hd1.04
d3pipes0.68b
よろしくお願いいたします。
コメント(6)
新しいものから |
古いものから |
ネスト表示 |

Re: d3pipesのスピードを上がるのは
Re: d3pipesのスピードを上がるのは
kilicaさん、ご教授有難うございました、本当に助かりましたわ。
cronを線にして悪戦苦闘した上で、やっとd3pipesのスピードを上げました。
下三つの記事も重要な参考になりました。
http://xoops.peak.ne.jp/md/news/index.php?page=article&storyid=130
http://www.xugj.org/modules/QandA/index.php?topic_id=564&autologin_loop_check=1
http://sb.xrea.com/showthread.php?p=75133
CORESERVER(コアサーバー)の場合、以下のように設定すれば、うまくいけるはずです。
毎日4時間毎にupdate_cache.shを実行する
0 */4 * * * update_cache.sh
update_cache.shの中身(XXXXのところ、自分のパスを入れ替える):
#!/bin/sh
#PHP
/usr/local/bin/php /virtual/xxxx/xxxx/xxxx/modules/d3pipes/bin/update_cache.php
exit
update_cache.phpの中身:
<?php
if( ! empty( $_SERVER['HTTP_HOST'] ) ) die( 'This script cannot be accessed via httpd' ) ;
chdir( dirname( __FILE__ ) ) ;
$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
// dummy variables
$_SERVER['REMOTE_ADDR'] = '192.168.0.1' ;
$_SERVER['REQUEST_URI'] = '/modules/'.$mydirname.'/' ;
$_SERVER['REQUEST_METHOD'] = 'GET' ;
require '../../../mainfile.php' ;
require XOOPS_TRUST_PATH.'/modules/d3pipes/include/update_cache.inc.php' ;
?>
今私の質問にまだ残った不明点は3と4だけですが、スピードも上がりましたので、分からなくでもいいかなぁ。
Re: d3pipesのスピードを上がるのは
投稿者: onokazu | 投稿日時: 2010/2/20 12:32
引用:
このモジュールを使用したことないので分かりませんが、外部取得キャッシュ期間が600秒だと、10分毎にキャッシュデータを更新することになりませんか?
その場合、10分(もしくはそれ以上の間隔)毎にwindjetさんが言われる表示速度が遅い現象が発生すると思います。kilicaさんも書かれていますが、cronを4時間毎に設定したのであれば、外部取得キャッシュ期間も4時間以上に設定した方が良いのではないでしょうか。
3)キャッシュを使えば、画面の表示も速くなると思います、でも、設定場所は三つがありますので、それぞれの関係は分かりません。一番目は一般設定ところの”外部取得キャッシュ期間 (秒) ”、デフォルト値は”600”、二番目はパイプ管理ところの”この時点のキャッシュ(trust/cache)”、デフォルト値は”3600”、三番目は互換モジュールの全般設定のところの”モジュール・キャッシュ”設定、デフォルト値は”キャッシュなし”。もし、画面の表示速度は第一と考えるなら、どうやて組み合わせて設定すればよいですか?
このモジュールを使用したことないので分かりませんが、外部取得キャッシュ期間が600秒だと、10分毎にキャッシュデータを更新することになりませんか?
その場合、10分(もしくはそれ以上の間隔)毎にwindjetさんが言われる表示速度が遅い現象が発生すると思います。kilicaさんも書かれていますが、cronを4時間毎に設定したのであれば、外部取得キャッシュ期間も4時間以上に設定した方が良いのではないでしょうか。
Re: d3pipesのスピードを上がるのは
Re: d3pipesのスピードを上がるのは
引用:
そうですね、自動的に更新するとは書かなかったと思いますが、手動と自動の違いというだけで、
結局はアクセス数が増えてきた場合には10分毎に近い状態でキャッシュが更新されるのではと思います。
それともユーザがあまりアクセスしないような画面にアクセスしないとキャッシュの更新はされないのかな?
それだと納得いきますが。
外部取得キャッシュ期間が600秒だと、10分毎にキャッシュデータを自動的に更新することはありません。ユーザーがモジュールのメニューをアクセスしない限り、キャッシュデータを更新しないです。
そうですね、自動的に更新するとは書かなかったと思いますが、手動と自動の違いというだけで、
結局はアクセス数が増えてきた場合には10分毎に近い状態でキャッシュが更新されるのではと思います。
それともユーザがあまりアクセスしないような画面にアクセスしないとキャッシュの更新はされないのかな?
それだと納得いきますが。
Re: d3pipesのスピードを上がるのは