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だ。
Windowsの場合はタスクマネージャで確認する。ユーザ名はすべて「SYSTEM」となっているので、イメージ名が「fms」から始まるプロセス名を表示すればOK。
長期運用中の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度押しなどが発生しないように
といった制御をしておこう。短期間でこれらの現象が何度も再発する場合は、アプリケーションの設計・実装自体を見直したほうが良い。これらの問題解決にあたり、各種ログの解析作業は欠かせない。開発作業と平行してログを確認できるようになっておきたいところだ。