先日Windows7 x64にセットアップしたpgAdmin4の、デスクトップアプリでなくウェブアプリだけの現象ですが、セッション情報を1秒ごとにローカルファイルに書き込むと判明。リソースモニタで見ると ↓ ずっとディスクアクセスが続いてます…。


クライアントのブラウザでDBに接続してなくとも同様。ノートパソコンで試して気づきました(ディスクのランプが点滅しっ放しなので)。これは何とかしたい。だけどセッション情報フォルダを変えるオプションはまだ無い。

手探りで調べたら、デスクトップ版・ウェプアプリ版とも
環境変数HOMEの下に、設定やセッション情報を格納するフォルダ(.pgadmin/)が作られる様子。詳しく書くと ↓
%HOME%
 ┗ .pgadmin
   ┣ sessions
   ┃ ┗ (files)
   ┣ pgadmin4.db
   ┗ pgadmin4.log


とりあえすウェブアプリの起動時にHOMERAMDISK下に設定し、フォルダ.pgadmin全体をディスクから分離しました。バッチファイルでは ↓ こんな感じ。pgadmin4.dbにはサーバ情報が登録されるので、本当はsessionsフォルダだけシンボリックリンクでRAMDISKに移したかったけど。
@echo off
set home=r:\temp
cd %~dp0\venv
start "pgAdmin4 python server" /min python ..\web\pgAdmin4.py


バッチファイルの置き場所は ↓ この前提。どこに置いても、カレントをvenvに移動してPythonスクリプトを起動すれば、多分動きます。
pgAdmin 4
  ┗ v1
   ┣ docs
   ┣ installer
   ┣ runtime
   ┣ venv
   ┃ ┣ python27.dll
   ┃ ┗ python.exe
   ┗ web
   ┃ ┗ pgAdmin4.py
   ┗ batfile


Windows7のリソースメータには、RAMDISKIOが出ません(ディスクフォーマットにもよると思うけど)。pgAdmin4ウェブアプリを再起動し、しばらく放置してリソースメータを見ると ↓ この状態。pgAdmin4のサーバはずっとRAMDISKにセッション情報を保存し続けてるけど、とりあえずディスクアクセスは回避しました。


デスクトップアプリ版でも、サーバ情報をポータブルに(システムドライブと切り離して)持ちたければ、同様に環境変数HOMEを設定して起動すればOK。これでレジストリ以外は純ポータブルなアプリになります。