質問箱/3064

カテゴリ
サマリ添付ファイル付きのページ表示の際にスワップが発生
バージョン1.4.5_1
投稿者Hiroki?
状態完了
投稿日2005-05-15 (日) 18:12:05

質問

添付ファイルが沢山あるページを表示しようとすると,スワップが発生し表示がとても遅くなります. サーバには128MBしかメモリが無いので,仕方ないのかもしれません. しかし,添付ファイルが少ないページでは表示は速いので,なんとかならないものかと思い質問しました. 添付ファイルの一つあたりの容量が大きすぎるのが問題なのかもしれません. 10MB以上のファイルが多数添付されています.

回答

  • こんにちは :) メモリを増や・・・*1、もといlib/html.php を改造して、表示する際の「添付ファイルの一覧を作る」処理を行わないようにするとどうなりますでしょうか? -- henoheno 2005-05-15 (日) 18:30:58
      // List of attached files of the page
    - //$attaches = ($is_read && exist_plugin_action('attach')) ?
    - //     attach_filelist() : ''; // これを
    + $attaches = ''; // こうする
  • この表示は「添付」のリンクから参照できるようになっていますから、現状常に表示させる必要性まではありません。そしてCMSとして使いたい人にとっては「消せるオプション」があった方が良いと常々考えていたものでした。 -- henoheno 2005-05-15 (日) 18:36:30
    • こちらで空のダミー添付ファイルを100個ほどattachディレクトリに置いたところ、確かに表示速度が落ちます。手元の環境ですと、100個表示するのにほぼ1秒(1.060sec程度) の「HTML convert time(ページの下に表示されます)」がかかりますが、上記 attach_filelist() を呼ばないようにすることでこの影響が無くなります (0.040sec程度)。添付ファイル数の多い時には効果がありそうです。attach_filelist() のファイル処理がボトルネックになっている様ですね。 -- henoheno 2005-05-15 (日) 18:58:39
       再現手順
         ※事前に"0"というページを作る
         ※jotはFreeBSDのコマンド。Linuxなら `seq 0 9`
       $ cd attach
       $ for i in `jot 10 0`; do for j in `jot 10 0`; do
          echo "touch 30_3${i}3${j}" ; done; done # 様子を見る
       $ !! | sh # 実行
  • ちなみに現在そのページのファイル数はいくつで、そのページに添付されているデータの総量は何MB位ですか? (「詳細」からサイズを確認できます) -- henoheno 2005-05-15 (日) 18:47:18
  • (これも余談です :) )注意点としては、第三者に編集(機能や操作)を許可している場合、どんな添付ファイルが添付されているかを調べる手段をWikiのユーザーから「完全に」奪うのは危険です。この場合上下にある「添付」へのリンクは消さない方が良いと思います。悪意のある人がこっそり悪用できるようになってしまいますから。 -- henoheno 2005-05-15 (日) 19:02:53
  • コメントありがとうございます>henoheno氏 -- Hiroki? 2005-05-16 (月) 11:24:29
  • 総量は,75MBくらいでした. -- Hiroki? 2005-05-16 (月) 11:30:05
  • $attaches = ''; をやってみました.速くなりました.ありがとうございました. -- Hiroki? 2005-05-16 (月) 12:25:59
  • 限定した人しか編集できないのでこれでOKです.ありがとうございます. -- Hiroki? 2005-05-16 (月) 12:27:11
  • 良いきっかけをありがとうございました :) dev:BugTrack2/68 にて本体にもコミットします。 -- henoheno 2005-05-16 (月) 22:17:24
  • 関連: attach プラグインの md5 計算、mimetypeのチェックによる負荷の問題(dev:BugTrack2/264) -- 2009-02-13 (金) 21:36:46

*1 余談ですが、(サーバーのOSが解りませんが)昨今のものであれば、どのようなものでも 256MB 位は欲しいと思います・・・

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-02-13 (金) 21:36:46
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.249 sec.

OSDN