FileMakerをバックエンドにしたWebアプリを長期運用する際、メンテナンスに注目しておきたい点はおもに次のとおり。

  • イベントビューア、コンソール、FileMaker Admin Consoleを使用したログ確認
  • 空き容量の確認 (Windowsの場合はとくにFileMakerをインストールしたドライブ)
  • fmsadmin, fmscwpe, fmserver, fmswpcプロセスのCPU・メモリ使用率
  • FileMaker Admin Consoleのクライアントビューアでのセッション接続数

今回は「fmsadmin, fmscwpe, fmserver, fmswpcプロセスのCPU・メモリ使用率」を取りあげる。

FileMaker Serverが関係するプロセスについて

FileMaker Serverではおもに次の用途でプロセスが起動している。

  • FileMaker Server Admin Console/管理ツール用
  • FileMaker Server本体 (FileMakerファイルを共有)
  • FileMaker Web公開

これらにヘルパーと呼ばれるプロセスと、サービスラッパが付随する。プロセス名はWindows/Macで微妙に異なるので、ここでおさらいしておこう。各プロセスの用途や動作の違いについては「FileMaker Server and FileMaker Server Advanced Processes/Services」が詳しい。

Mac OS X

プロセス プロセス名 ユーザ
Adminサーバ Java fmserver
Adminヘルパー Java fmserver
FileMakerデータベースサーバ fmserverd fmserver
FileMakerデータベースヘルパー fmserver_helperd fmserver
Web公開コア FM Web Publishing fmserver
カスタムWeb公開エンジン Java fmserver
Service Wrapper fmservicewrapperd fmserver

Windows

プロセス プロセス名 ユーザ
Adminサーバ fmsadmin.exe fmserver
Adminヘルパー fmsadmin.exe fmserver
FileMakerデータベースサーバ fmserver.exe fmserver
FileMakerデータベースヘルパー fmshelper.exe fmserver
Web公開コア fmswpc fmserver
カスタムWeb公開エンジン fmscwpe.exe fmserver
Service Wrapper fmservicewrapper.exe fmserverd

Mac OS Xの場合はユーザ名が「fmserver」となっているプロセスを表示すれば良い。アクティビティモニタで確認する場合は、すべてのプロセスを表示した上で「ユーザ」でソートを。ターミナル上のtop(1)コマンドで確認する場合は「top -U fmserver」を実行すればOKだ。

アクティビティモニタでユーザが「fmserver」となっているプロセスを監視

ターミナル上で「top -U fmserver」を実行。リモートからSSH経由でさくっと確認したい場合に便利

Windowsの場合はタスクマネージャで確認する。ユーザ名はすべて「SYSTEM」となっているので、イメージ名が「fms」から始まるプロセス名を表示すればOK。

Mタスクマネージャでイメージ名が「fms」から始まるプロセスを監視

長期運用中のWebアプリが「なにか動作が遅くなった……」と感じたときは、まずはこれらのプロセスのCPU負荷・メモリ使用領域を確認してみよう。Webアプリにアクセスがない状態でCPU負荷がかかっていたり、メモリの使用率が搭載メモリ量と比較して多い場合は要チェック。FileMakerを使用したWebアプリにおいて、発生しやすい現象をまとめてみた。

  • fmserverd/fmserver.exeのCPU使用率が常に50-90%以上発生している
  • fmserverd/fmserver.exeのメモリ使用率が急激に増えていく
  • FM Web Publishing,Java/fmswpc.exe,fmscwpe.exeのCPU使用率が常に50-90%以上発生している

これらはとくに、Webから数万レコードのソートを不必要に繰り返したり、FileMakerスクリプトを起動してなんらかのトラブルで永久ループに陥ってしまった場合に発生しやすい。必要に応じてサービスの再起動をおこなう。アプリケーション側でもなるべくサーバに不必要な負荷がかからないよう

  • 対象レコードが多い場合にソートをおこなう場合は、確認のダイアログを表示するように
  • FileMakerスクリプトを実行する場合は、ボタンの2度押しなどが発生しないように

といった制御をしておこう。短期間でこれらの現象が何度も再発する場合は、アプリケーションの設計・実装自体を見直したほうが良い。これらの問題解決にあたり、各種ログの解析作業は欠かせない。開発作業と平行してログを確認できるようになっておきたいところだ。