サポート » 使い方全般 » サーバの容量が1日でMAXになってしまう

  • 解決済 takashi331

    (@takashi331)


    お世話になります。初心者で本当に困り果てているので、ご意見を求めております。。

    さくらインターネットのレンタルサーバ、スタンダードを利用しているのですが、カスタムしたテーマでwpを設置し、コンテンツを入れ、運用を開始して1日目で、wpサイトの画像が表示されない(エラーの紫色の画像が表示される)ようになってしまいました。

    調べた所、サーバ容量の10GBのMAXになっていたので、それが原因だと思うのですが、そんなに容量のあるサイトではありません。(せいぜい20MBくらい)
    同じサーバ内で運用している別サイトもありません。

    mysqlのdbは1MB程度です。

    画像のサムネイルの表示が異様に重たいので(IEでは異常なまでの遅さ)、カスタムテーマ内のphpThumbフォルダ内にあるcacheフォルダを疑ったのですが、ここに異常なまでの膨大なファイルが出来上がっていました。
    ここのファイルを削除したらサーバの容量が8GBくらい減り、画像が再び表示されるようにはなったのですが、これが2日置きくらいに起こるので、何か根本的な問題があると思います。

    ご意見ありましたらお願いいたします!

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • サムネイルのキャッシュがすごいことになってますね
    出かけ先なので詳しく返答出来ませんが
    カスタムテーマのサムネイルを自動生成する命令をループか何かに放っていませんか?

    トピック投稿者 takashi331

    (@takashi331)

    ありがとうございます!
    たぶんそういうことなんだと思うのですが、どの記述が該当するのか分かりません・・・
    可能性として、どのファイルのどういう記述か等、見当がつくものでしょうか??
    よろしくお願いします!

    遅くなりました
    サムネイルの生成はプラグインを使用していますか?
    (php_Thumb、QF-GetThumb等)
    もしphpThumb()を使用しているなら危険かもしれないです
    使用していると仮定して話を進めると
    リサイズの制限をかけないと
    URLからソースを認識してリサイズしサムネイルを生成するからです
    おそらくそれだけではなく同じURLだとしても
    生成する前に既にあるか確認していないため
    同じファイルが複数できてしまうものかと・・・
    メディアをアップロードする際にサイズ指定出来るのでそちらを使用するか
    プラグインの生成の情報を書きかえるか
    別のプラグインへ移行するかと思いますね

    トピック投稿者 takashi331

    (@takashi331)

    ありがとうございます!

    まさに、php Thumbというものを使っているようです。
    プラグインというよりも、カスタムテーマに組み込まれたような形で使っています。

    URLは、WPの設置場所が

    ●●●.sakura.ne.jp
    で、
    サイトのほうは独自ドメインになりますので、画像の置き場所とサイトのURLは異なります。

    ・リサイズの制限
    →これはどのように行えば良いでしょうか?

    テーマにサムネイルの生成が組み込まれているので、何とか現状のまま改善できればと思います。。
    大変お手数ですが、ご意見の程、よろしくお願いします!

    トピック投稿者 takashi331

    (@takashi331)

    お世話になります。
    phpThumbのキャッシュに関係ありそうな
    phpThumb.config.php
    というファイルの関係しそうな部分を見つけたので、貼付けさせていただきます。

    // * Cache culling: phpThumb can automatically limit the contents of the cache directory
    //   based on last-access date and/or number of files and/or total filesize.
    
    //$PHPTHUMB_CONFIG['cache_maxage'] = null;            // never delete cached thumbnails based on last-access time
    $PHPTHUMB_CONFIG['cache_maxage'] = 86400 * 30;        // delete cached thumbnails that haven't been accessed in more than [30 days] (value is maximum time since last access in seconds to avoid deletion)
    
    //$PHPTHUMB_CONFIG['cache_maxsize'] = null;           // never delete cached thumbnails based on byte size of cache directory
    $PHPTHUMB_CONFIG['cache_maxsize'] = 10 * 1024 * 1024; // delete least-recently-accessed cached thumbnails when more than [10MB] of cached files are present (value is maximum bytesize of all cached files)
    
    //$PHPTHUMB_CONFIG['cache_maxfiles'] = null;          // never delete cached thumbnails based on number of cached files
    $PHPTHUMB_CONFIG['cache_maxfiles'] = 200;             // delete least-recently-accessed cached thumbnails when more than [200] cached files are present (value is maximum number of cached files to keep)
    
    // * Source image cache configuration
    $PHPTHUMB_CONFIG['cache_source_enabled']   = false;                               // if true, source images obtained via HTTP are cached to $PHPTHUMB_CONFIG['cache_source_directory']
    $PHPTHUMB_CONFIG['cache_source_directory'] = dirname(__FILE__).'/cache/source/';  // set the cache directory for unprocessed source images
    
    // * cache source modification date configuration
    $PHPTHUMB_CONFIG['cache_source_filemtime_ignore_local']  = false; // if true, local source images will not be checked for modification date and cached image will be used if available, even if source image is changed or removed
    $PHPTHUMB_CONFIG['cache_source_filemtime_ignore_remote'] = true;  // if true, remote source images will not be checked for modification date and cached image will be used if available, even if source image is changed or removed. WARNING: cached performance MUCH slower if this is set to false.

    なにか数字をいじれば良さそうな気がするのですが、アドバイスお願いいたします!

    とりあえず変更は二箇所ほど

    phpThumb.config.php

    <?php
    //キャッシュ画像全体の上限容量 1Gbyte
    //1024(K)*1024(M)*1024(G)
    //上の貼り付けを見ると10Mbyteですので変更してもしなくてもどちらでも
    $PHPTHUMB_CONFIG['cache_maxsize'] = 1024 * 1024 * 1024;
    
    //サムネイルの最大サイズ
    $PHPTHUMB_CONFIG['output_maxwidth'] = 1000;
    $PHPTHUMB_CONFIG['output_maxheight'] = 1000;
    
    //外部からの不正なアクセス防止
    $PHPTHUMB_CONFIG['nohotlink_enabled'] = true;

    念の為htaccessをphpthumbフォルダに置く

    <Files ~ "phpThumb.php">
    SetEnvIf Referer "^http://ドメイン/" ref_ok
    order deny,allow
    deny from all
    allow from env=ref_ok
    </Files>

    このプラグイン、日々修正されているようですが脆弱性があるので
    自分である程度制限しちゃったほうが安全ではあります
    アクセスログを確認してみて膨大なアクセスがあるのなら要注意ですね
    (特に海外ドメインの奴らw)

    追記:
    以下も知っておいたほうがいいかも

    //cacheを削除する時間(一日の秒数*日数)下では30日で削除
    $PHPTHUMB_CONFIG['cache_maxage'] = 86400 * 30;
    //サムネイルが200以上作られていた場合アクセスが多いサムネイルから削除?とにかく順番に削除されていくらしい
    $PHPTHUMB_CONFIG['cache_maxfiles'] = 200;

    トピック投稿者 takashi331

    (@takashi331)

    ありがとうございます!
    やってみます!
    この度はご親切に大変ありがとうございました^^

    画像サイズの計算式を一応
    縦*横*解像度(300dpi一般的なデジカメ等のサイズ)
    ……なので
    1000*1000*300=300000000=286.1MByte
    まぁ、圧縮画像(jpg等のweb用画像)とかだと多少解像度落としてる
    一般的には72や96の解像度だと思うけど、人それぞれかな
    大きめに96で計算すると
    1000*1000*96=96000000=91.6MByte
    容量が最大サイズで作られ続けたと仮定して
    サイズが圧迫するなら800:600の縦横サイズでもそれなりに見られるかと

    もしかしたらバグで
    現在最大10MByteになっていると思うけれど
    10MByte以上の画像を吐き出された場合、リミットブレイクな感じに・・・
    動きを検証したわけじゃないけどオーバーフロー怖いです
    最悪の事態を考えて300dpi画像がアップロードされた場合
    300Mbyte以上あればそんな事は無いのかな

    トピック投稿者 takashi331

    (@takashi331)

    ありがとうございます!
    しばらく検証してみます!

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「サーバの容量が1日でMAXになってしまう」には新たに返信することはできません。