ホーム > フォーラム > 質問箱 > XCL2.1.7 > d3pipesのスピードを上がるのは

d3pipesのスピードを上がるのは
投稿者: windjet | 投稿日時: 2010/2/14 19:29 | 閲覧: 18880回
windjet

こんにちは、今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)

新しいものから | 古いものから | ネスト表示 | RSS feed
Re: d3pipesのスピードを上がるのは 
投稿者: kilica | 投稿日時: 2010/2/15 23:09
kilica

cron で html/modules/d3pipes/bin/update_cache.sh を定期的(1時間ごとなど。外部取得キャッシュ期間 (秒) より短い間隔)に動かすのが基本で、これで速度的な問題はおそらく解決すると思います。
Re: d3pipesのスピードを上がるのは 
投稿者: windjet | 投稿日時: 2010/2/20 1:14 | 親コメント: #20318
windjet

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
onokazu
引用:
3)キャッシュを使えば、画面の表示も速くなると思います、でも、設定場所は三つがありますので、それぞれの関係は分かりません。一番目は一般設定ところの”外部取得キャッシュ期間 (秒) ”、デフォルト値は”600”、二番目はパイプ管理ところの”この時点のキャッシュ(trust/cache)”、デフォルト値は”3600”、三番目は互換モジュールの全般設定のところの”モジュール・キャッシュ”設定、デフォルト値は”キャッシュなし”。もし、画面の表示速度は第一と考えるなら、どうやて組み合わせて設定すればよいですか?


このモジュールを使用したことないので分かりませんが、外部取得キャッシュ期間が600秒だと、10分毎にキャッシュデータを更新することになりませんか?

その場合、10分(もしくはそれ以上の間隔)毎にwindjetさんが言われる表示速度が遅い現象が発生すると思います。kilicaさんも書かれていますが、cronを4時間毎に設定したのであれば、外部取得キャッシュ期間も4時間以上に設定した方が良いのではないでしょうか。
Re: d3pipesのスピードを上がるのは 
投稿者: windjet | 投稿日時: 2010/3/3 19:14 | 親コメント: #20329
windjet

外部取得キャッシュ期間が600秒だと、10分毎にキャッシュデータを自動的に更新することはありません。ユーザーがモジュールのメニューをアクセスしない限り、キャッシュデータを更新しないです。
kilicaさんが提示したことのおかけで、上に書いた通りに、やっとd3pipesのスピードを上げました。
ご返事有難うございます。
Re: d3pipesのスピードを上がるのは 
投稿者: onokazu | 投稿日時: 2010/3/3 22:57 | 親コメント: #20338
onokazu
引用:
外部取得キャッシュ期間が600秒だと、10分毎にキャッシュデータを自動的に更新することはありません。ユーザーがモジュールのメニューをアクセスしない限り、キャッシュデータを更新しないです。


そうですね、自動的に更新するとは書かなかったと思いますが、手動と自動の違いというだけで、
結局はアクセス数が増えてきた場合には10分毎に近い状態でキャッシュが更新されるのではと思います。

それともユーザがあまりアクセスしないような画面にアクセスしないとキャッシュの更新はされないのかな?
それだと納得いきますが。
Re: d3pipesのスピードを上がるのは 
投稿者: windjet | 投稿日時: 2010/3/5 10:29 | 親コメント: #20339
windjet

ユーザがあまりアクセスしないような画面にアクセスしないとキャッシュの更新はされないので、新たに投入したサイトにはcron で 定期的に巡回して自動更新した方がいいと思います。

    投票(1)

    新しいものから | 古いものから | RSS feed
     
      To Top