Top > Movable Type > ツール [全て開く]
2009年9月 7日

remove_old_sessions で不要なセッションデータを削除する

Movable Type 5.0 の tools ディレクトリに追加された remove_old_sessions を紹介します。

1.機能

このツールは、パラメータで指定した日数を超過した各セッションデータを、mt_session テーブルから削除します。

2.コマンドパラメータ

ツールのコマンドパラメータは次のようになります。具体的な実行方法は3項を参照してください。

remove_old_sessions --ttl <days> --kind <comma separated list of kinds>

パラメータの意味は次の通りです。

  • --ttl:日数を指定します(必須パラメータ)。30 を指定すれば 30日以上経過したセッションを削除します
  • --kind:セッションの種類(mt_session の session_kind)を指定します(オプションパラメータ)。セッションの種類を複数指定する場合はカンマで区切ります。設定値と意味は次の通りです。なお、US/UA/SI は本パラメータで指定しない限り削除されません。
SI
アクティブなコメント投稿者セッション
KY
リモートコメント認証サービスの公開キー
AN
認証システムで使用するnonce値
US(User Sessions)
アクティブなユーザーセッション
NW
ダッシュボードウィジェットにあるニュースのキャッシュコンテンツ
AF(Activity Feeds)
アクティビティフィードのセッション
AS(AutoSave)
ブログ記事とテンプレートの自動保存データ
TF(Temporary File)
ブログ記事とテンプレートのプレビューで生成された一時ファイルデータ
CR(Commenter Registration)
コメンター登録のトークン
CS
mt-search.cgiによるブログ検索結果のキャッシュ
UA
特定のユーザーが最後にログインしたことを示すアクティブユーザーとしての記録
CO(Cached Object)
MT::Cache::Sessionクラスによるキャッシュデータ(テンプレートモジュールのキャッシュ)
BU(BackUp)
バックアップファイルを一定期間だけダウンロードできるためのセッション(期限切れになった後、MTによって提供されたバックアップファイルのリンクからバックアップデータはダウンロードできません)
CC(Category Cache)
特定のカテゴリーデータのキャッシュ
SC(System Check)
mt-check.cgiの実行結果
PT(Periodic Task)
最後に起動したスケジュールタスク
CA(CaptchA)
captchaのトークン(10分で期限切れになります)
TC(Tag Cache)
特定のタグデータのキャッシュ

3.起動方法

コマンドラインから起動します。remove_old_sessions には、事前に実行権のパーミッションを与えてください。

アプリケーションディレクトリが mt の場合の起動例を以下に示します。

% cd /home/www/mt % ./tools/remove_old_sessions --ttl 30 --kind SI,KY,AN

実行すると、削除予定データを表示した後、「Proceed?」と表示されるので、y やyes を入力すれば削除を実行します。

実行画面

4.mt_session テーブルのサイズ

remove_old_sessions 実行前と実行後の mt_session テーブルのサイズを示します。

実行前
remove_old_sessions 実行前の mt_session テーブル

実行後
remove_old_sessions 実行後の mt_session テーブル

Comments [0] | Trackbacks [0]
2008年10月31日

コマンドラインから特定のテンプレートをデバグできる mt-tmpl-test

October 31,2008 12:03 PM
Tag:[, , , ]
Permalink

コマンドラインから、Movable Type の特定のテンプレートをデバグできる mt-tmpl-test now というツールが登場しました。

Making it easier to debug and test your templates
Making it easier to debug and test your templates

1.概要

このツールでは次のような出力を得ることができます。

  1. テンプレートの出力(任意のHTMLファイル名で標準出力を保存すればブラウザから参照可)
  2. テンプレートによって呼び出されたすべてのテンプレートタグ
  3. 再構築時間・SQL発行回数
  4. 再構築で実行されたSQLステートメント

出力するテンプレートの指定は、テンプレート名やテンプレートID で行います。カテゴリーアーカイブテンプレートはカテゴリー名またはカテゴリーID、ブログ記事アーカイブテンプレートはブログ記事名またはブログ記事ID を指定します(指定方法は後述)。

2.の「テンプレートによって呼び出されたすべてのテンプレートタグ」では、次のような内容も併せて出力します。

  1. テンプレートタグ実行時間
  2. テンプレートタグの起動回数
  3. テンプレートタグが1回起動されたときの平均実行時間
  4. テンプレートタグごとのSQL実行回数

次のようなものを標準出力します。

テンプレートによって呼び出されたすべてのテンプレートタグ

2.ツール実行に必要な Perl モジュール

mt-tmpl-test を実行するには Text::SimpleTable が必要です。PPM を起動して、Text-SimpleTable をインストールしてください。

Text::SimpleTable のインストール

ppm コマンドを使えばコマンドラインからもインストールできます。下は Windows + ActivePerl の例です。

コマンドラインからインストール

3.ツールの利用方法

Making it easier to debug and test your templates」のページにある「Download mt-tmpl-test now」のリンクを右クリックして「対象をファイルに保存」や「名前を付けてリンク先を保存」などを選択し、ファイルを mt-tmpl-test という名前で保存します。

ツールのダウンロード

保存したファイルをアプリケーションディレクトリの tools ディレクトリにアップロードして、実行できるよう、パーミッションを 705 や 755 などに変更します。

コマンドラインから次のような感じで起動します。

% cd /path/to/mt
% perl ./tools/mt-tmpl-test --blog=1 --template=1 --profile

Windows で実行する場合は、スラッシュ "/" を¥ に書き換えてください。

指定できるオプションパラメータは次の通りです。

オプションパラメータ設定内容
--blog <name>ブログ名またはブログIDを指定
--template <name>テンプレート名またはテンプレートIDを指定
--category <label>カテゴリー名またはカテゴリーIDを指定
--entry <title>ブログ記事タイトルまたはブログ記事IDを指定
--author <name>ユーザー名またはユーザーIDを指定
--archive <type>アーカイブ種別を指定
--profileSQLやテンプレートタグのプロファイルを出力
--debug <mode>MTのデバグモードを指定
--helpヘルプを表示

設定例をいくつか示します。パラメータとパラメータ値の間「=」でつなぐか、半角スペースを挿入してください。各パラメータは半角空白で区切ってください。

1番目のブログ(インストール時に作成されたブログ)のメインページテンプレート(ID:10)を出力

% perl ./tools/mt-tmpl-test --blog=1 --template=10

1番目のブログのブログ記事アーカイブ(ID:15)を、3番目のブログ記事を出力

% perl ./tools/mt-tmpl-test --blog=1 --template=15 --entry=3

1番目のブログのブログ記事リストアーカイブ(ID:17)を、月別アーカイブとしてを出力

% perl ./tools/mt-tmpl-test --blog=1 --template=17 --archive=Monthly

1番目のブログ(インストール時に作成されたブログ)のメインページテンプレート(ID:10)で、プロファイルも出力

% perl ./tools/mt-tmpl-test --blog=1 --template=10  --profile

4.プロファイルの出力例

プロファイルはテンプレート出力の後に出力されます。

Template Tag Utilization:
.----------+----------------------+--------+---------+--------+--------+-------.
| Time     | Tag                  | Calls  | Avg     | SQL    | Hits   | Miss  |
+----------+----------------------+--------+---------+--------+--------+-------+
| 0.224    | include              | 66     | 0.003   | 61     | 22     | 22    |
| 0.107    | entrypermalink       | 50     | 0.002   | 21     | 1      | 1     |
| 0.095    | entrytrackbackdata   | 10     | 0.010   | 36     | 18     | 18    |
| 0.051    | entryiftagged        | 16     | 0.003   | 16     | 42     | 25    |
| 0.049    | filetemplate         | 90     | 0.001   | 0      | 0      | 0     |
| 0.042    | entries              | 6      | 0.007   | 6      | 36     | 11    |
| 0.037    | categorycount        | 12     | 0.003   | 12     | 0      | 0     |
| 0.033    | comments             | 6      | 0.006   | 6      | 19     | 14    |
| 0.030    | tags                 | 2      | 0.015   | 3      | 41     | 16    |
| 0.029    | link                 | 6      | 0.005   | 12     | 6      | 5     |
| 0.024    | entrycategories      | 9      | 0.003   | 10     | 12     | 1     |
| 0.024    | else                 | 39     | 0.001   | 0      | 0      | 0     |
| 0.022    | archivelink          | 8      | 0.003   | 9      | 0      | 0     |
| 0.022    | archivelist          | 1      | 0.022   | 2      | 0      | 0     |
| 0.022    | subcatsrecurse       | 9      | 0.002   | 11     | 2      | 2     |
| 0.019    | archivedate          | 150    | 0.000   | 0      | 0      | 0     |
| 0.018    | tagsearchlink        | 148    | 0.000   | 0      | 0      | 0     |
| 0.015    | categoryarchivelink  | 15     | 0.001   | 1      | 0      | 0     |
| 0.012    | toplevelcategories   | 1      | 0.012   | 2      | 7      | 4     |
| 0.011    | widgetset            | 2      | 0.006   | 4      | 2      | 2     |
| 0.011    | entrytags            | 6      | 0.002   | 0      | 0      | 0     |
| 0.009    | blogpingcount        | 2      | 0.004   | 1      | 0      | 0     |
| 0.008    | if                   | 112    | 0.000   | 0      | 0      | 0     |
| 0.008    | pings                | 2      | 0.004   | 2      | 6      | 3     |
| 0.005    | ifcommentsactive     | 30     | 0.000   | 0      | 0      | 0     |
| 0.005    | archivefile          | 67     | 0.000   | 0      | 0      | 0     |
| 0.004    | entrylink            | 8      | 0.001   | 0      | 0      | 0     |
| 0.004    | ifarchivetypeenabled | 3      | 0.001   | 2      | 0      | 0     |
| 0.004    | subcategorypath      | 15     | 0.000   | 0      | 0      | 0     |
| 0.003    | entrycategory        | 10     | 0.000   | 1      | 0      | 0     |
| 0.003    | tagrank              | 32     | 0.000   | 0      | 0      | 0     |
| 0.002    | blogcommentcount     | 1      | 0.002   | 1      | 0      | 0     |
| 0.002    | tagname              | 74     | 0.000   | 0      | 0      | 0     |
| 0.002    | entrybody            | 19     | 0.000   | 0      | 0      | 0     |
| 0.002    | setvar               | 29     | 0.000   | 0      | 0      | 0     |
| 0.001    | entrydate            | 10     | 0.000   | 0      | 0      | 0     |
| 0.001    | dateheader           | 10     | 0.000   | 0      | 0      | 0     |
| 0.001    | archivetitle         | 8      | 0.000   | 0      | 0      | 0     |
| 0.001    | blogid               | 43     | 0.000   | 0      | 0      | 0     |
| 0.001    | entryid              | 39     | 0.000   | 0      | 0      | 0     |
| 0.001    | indexbasename        | 23     | 0.000   | 0      | 0      | 0     |
| 0.001    | ifpingsactive        | 20     | 0.000   | 0      | 0      | 0     |
| 0.001    | entrytitle           | 24     | 0.000   | 0      | 0      | 0     |
| 0.001    | entrymore            | 10     | 0.000   | 0      | 0      | 0     |
| 0.001    | categorylabel        | 21     | 0.000   | 0      | 0      | 0     |
| 0.001    | commentdate          | 5      | 0.000   | 0      | 0      | 0     |
| 0.001    | categorybasename     | 15     | 0.000   | 0      | 0      | 0     |
| 0.000    | categorydescription  | 15     | 0.000   | 0      | 0      | 0     |
| 0.000    | productname          | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | commentauthor        | 5      | 0.000   | 0      | 0      | 0     |
| 0.000    | entrycommentcount    | 10     | 0.000   | 0      | 0      | 0     |
| 0.000    | archivecount         | 8      | 0.000   | 0      | 0      | 0     |
| 0.000    | entrytrackbackcount  | 9      | 0.000   | 0      | 0      | 0     |
| 0.000    | commentid            | 10     | 0.000   | 0      | 0      | 0     |
| 0.000    | subcatisfirst        | 9      | 0.000   | 0      | 0      | 0     |
| 0.000    | subcatislast         | 9      | 0.000   | 0      | 0      | 0     |
| 0.000    | staticwebpath        | 2      | 0.000   | 0      | 0      | 0     |
| 0.000    | unless               | 2      | 0.000   | 0      | 0      | 0     |
| 0.000    | publishcharset       | 2      | 0.000   | 0      | 0      | 0     |
| 0.000    | blogname             | 3      | 0.000   | 0      | 0      | 0     |
| 0.000    | cgipath              | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | elseif               | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | getvar               | 2      | 0.000   | 0      | 0      | 0     |
| 0.000    | entriesheader        | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | defaultlanguage      | 2      | 0.000   | 0      | 0      | 0     |
| 0.000    | archivelistheader    | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | entriesfooter        | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | archivelistfooter    | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | blogifcclicense      | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | searchscript         | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | blogurl              | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | searchmaxresults     | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | cclicenserdf         | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | blogdescription      | 1      | 0.000   | 0      | 0      | 0     |
| 0.000    | version              | 1      | 0.000   | 0      | 0      | 0     |
'----------+----------------------+--------+---------+--------+--------+-------'
  Total Queries: 219
  Total Build Time: 1.02736
.------------------------------------------------------------------+-----------.
| Query                                                            | Number    |
+------------------------------------------------------------------+-----------+
| RAMCACHE_GET ?                                                   | 214       |
| RAMCACHE_ADD ?                                                   | 124       |
| SELECT templatemap_id, templatemap_archive_type, templatemap_bl- | 30        |
| og_id, templatemap_build_interval, templatemap_build_type, temp- |           |
| latemap_file_template, templatemap_is_preferred, templatemap_te- |           |
| mplate_id FROM mt_templatemap WHERE (templatemap_archive_type =- |           |
|  ?) AND (templatemap_blog_id = ?) LIMIT 1                        |           |
| SELECT template_id, template_blog_id, template_build_dynamic, t- | 25        |
| emplate_build_interval, template_build_type, template_created_b- |           |
| y, template_created_on, template_identifier, template_linked_fi- |           |
| le, template_linked_file_mtime, template_linked_file_size, temp- |           |
| late_modified_by, template_modified_on, template_name, template- |           |
| _outfile, template_rebuild_me, template_text, template_type FRO- |           |
| M mt_template WHERE (template_id IN (?))                         |           |
| SELECT template_id FROM mt_template WHERE (template_name = ?) A- | 20        |
| ND (template_type = ?) AND (template_blog_id IN (?,?)) ORDER BY- |           |
|  template_blog_id DESC                                           |           |
| SELECT template_meta_template_id, template_meta_type, template_- | 20        |
| meta_vchar, template_meta_vchar_idx, template_meta_vdatetime, t- |           |
| emplate_meta_vdatetime_idx, template_meta_vinteger, template_me- |           |
| ta_vinteger_idx, template_meta_vfloat, template_meta_vfloat_idx- |           |
| , template_meta_vblob, template_meta_vclob FROM mt_template_met- |           |
| a WHERE (template_meta_template_id = ?)                          |           |
| SELECT placement_id, placement_blog_id, placement_category_id, - | 19        |
| placement_entry_id, placement_is_primary FROM mt_placement WHER- |           |
| E (placement_entry_id = ?)                                       |           |
| SELECT COUNT(*) FROM mt_entry, mt_placement WHERE (entry_status- | 12        |
|  = ?) AND (entry_class = ?) AND (entry_blog_id = ?) AND (placem- |           |
| ent_category_id = ?) AND (entry_id = placement_entry_id)         |           |
| SELECT DISTINCT tag_id, tag_name FROM mt_tag, mt_objecttag WHER- | 10        |
| E (objecttag_object_id = ?) AND (objecttag_object_datasource = - |           |
| ?) AND (tag_id = objecttag_tag_id) ORDER BY tag_name ASC         |           |
| SELECT category_id FROM mt_category WHERE (category_parent = ?)- | 9         |
|  AND (category_class = ?) AND (category_blog_id = ?)             |           |
| SELECT category_id, category_allow_pings, category_author_id, c- | 9         |
| ategory_basename, category_blog_id, category_class, category_cr- |           |
| eated_by, category_created_on, category_description, category_l- |           |
| abel, category_modified_by, category_modified_on, category_pare- |           |
| nt, category_ping_urls FROM mt_category WHERE (category_id = ?)- |           |
|  LIMIT 1                                                         |           |
| SELECT trackback_id FROM mt_trackback WHERE (trackback_entry_id- | 9         |
|  = ?) LIMIT 1                                                    |           |
| SELECT trackback_id, trackback_blog_id, trackback_category_id, - | 9         |
| trackback_created_by, trackback_created_on, trackback_descripti- |           |
| on, trackback_entry_id, trackback_is_disabled, trackback_modifi- |           |
| ed_by, trackback_modified_on, trackback_passphrase, trackback_r- |           |
| ss_file, trackback_title, trackback_url FROM mt_trackback WHERE- |           |
|  (trackback_id IN (?))                                           |           |
| SELECT template_id FROM mt_template WHERE (template_identifier - | 6         |
| = ?) AND (template_type = ?) AND (template_blog_id = ?) LIMIT 1  |           |
| SELECT category_id, category_allow_pings, category_author_id, c- | 3         |
| ategory_basename, category_blog_id, category_class, category_cr- |           |
| eated_by, category_created_on, category_description, category_l- |           |
| abel, category_modified_by, category_modified_on, category_pare- |           |
| nt, category_ping_urls FROM mt_category WHERE (category_id IN (- |           |
| ?))                                                              |           |
| SELECT comment_id FROM mt_comment WHERE (comment_visible = ?) A- | 3         |
| ND (comment_blog_id = ?) AND (comment_entry_id = ?) ORDER BY co- |           |
| mment_created_on DESC                                            |           |
| SELECT templatemap_id, templatemap_archive_type, templatemap_bl- | 3         |
| og_id, templatemap_build_interval, templatemap_build_type, temp- |           |
| latemap_file_template, templatemap_is_preferred, templatemap_te- |           |
| mplate_id FROM mt_templatemap WHERE (templatemap_is_preferred =- |           |
|  ?) AND (templatemap_archive_type = ?) AND (templatemap_blog_id- |           |
|  = ?) LIMIT 1                                                    |           |
| SELECT entry_id FROM mt_entry WHERE (entry_status = ?) AND (ent- | 2         |
| ry_blog_id = ?) AND (entry_class = ?) ORDER BY entry_authored_o- |           |
| n DESC LIMIT 10                                                  |           |
| SELECT tag_id, tag_is_private, tag_n8d_id, tag_name FROM mt_tag- | 2         |
|  WHERE (tag_id IN (?,?,?,?))                                     |           |
| SELECT template_id FROM mt_template WHERE (template_name = ?) A- | 2         |
| ND (template_blog_id IN (?,?)) AND (template_type = ?) LIMIT 1   |           |
'------------------------------------------------------------------+-----------'
Comments [0] | Trackbacks [0]
Now loading...
Introduction
List of "ツール"
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.02