パフォーマンス改善を正しくやりたいとか言っておいて、Plnetがあまりに重く、使い物にならなくなっていたので焦ってまた勘で対応していまいました・・・。

lighter_graf.png

しかも効果がありまくりで・・・。

mysqlがslow-query出しまくりなのでページキャッシュを入れまくりました。Mojavi2なんでこういうSmartyプラグインを作った感じです。

<?php
if (!defined(CACHE_LITE_DIR)) define('CACHE_LITE_DIR', '/tmp/');
if (!defined(CACHE_LITE_AUTO_CLEANING)) define('CACHE_LITE_AUTO_CLEANING', 128);

function smarty_function_mojavi_action($params, &$smarty)
{
    $id = $params['module'].'_'.$params['action'];

    if (isset($params['lifetime'])) {
        include_once 'Cache/Lite.php';
        $cache =& new Cache_Lite(array(
            'cacheDir' => CACHE_LITE_DIR,
            'lifeTime' => $params['lifetime'],
            'automaticCleaningFactor' => CACHE_LITE_AUTO_CLEANING,
            'automaticSerialization' => true
        ));

        $cache_id = $id.'_'.
            (isset($params['cache_id']) ? $params['cache_id'] : '');
        if ($data = $cache->get($cache_id)) {
            return $data;
        }
    }

    $controller =& Controller::getInstance();
    $actionChain =& new ActionChain();
    $actionChain->register($id, $params['module'], $params['action']);
    $actionChain->execute($controller, $controller->request, $controller->user);
    $data = $actionChain->fetchResult($id);
    if (isset($params['lifetime'])) $cache->save($data, $cache_id);
    return $data;
}
?>

なんでDBが重いのにmysql serverがCPU食わないんだろう。clientの方ばっかり食ってることになってる。

とりあえずcocoitiさんにスケーラブルWebサイトを借りたので読んで悔い改めたいと思います。

スケーラブルWebサイト
  • スケーラブルWebサイト
  • オライリー・ジャパン(2006-12-26)
  • オライリー・ジャパン
  • (著)Cal Henderson
  • (翻訳)武舎 広幸
  • (翻訳)福地 太郎
  • (翻訳)武舎 るみ
  • 定価:¥ 3,570
  • 新品価格:¥ 3,570
  • 中古価格:¥ 2,913
  • ASIN:4873113113

Comments


Option