はとのーと

エジソンノート(アイデア、思い付き、メモ)として使っています。誰かの役に立つかもしれないので公開しています。

メモ 2026-01

2026-01-15

HTMX+Gunicornではワーカーをgthreadにする

現象:

HTMX を使っているWebアプリを Gunicorn で実行していると、最初はきちんと動作するが、しばらく使っているとクリックしても反応がなくなる。 1分ほど放っておくと動作するようになる。

相性問題もあり、Windows 11のEdgeのみで発生し、Google Chromeでは発生しない。

ログを確認するとGunicornのワーカーがタイムアウトしている。

web_1  | [2026-01-15 17:31:41 +0900] [1] [INFO] Starting gunicorn 23.0.0
web_1  | [2026-01-15 17:31:41 +0900] [1] [INFO] Listening at: http://0.0.0.0:8000 (1)
web_1  | [2026-01-15 17:31:41 +0900] [1] [INFO] Using worker: sync
web_1  | [2026-01-15 17:31:41 +0900] [6] [INFO] Booting worker with pid: 6
web_1  | [2026-01-15 17:32:24 +0900] [1] [CRITICAL] WORKER TIMEOUT (pid:6)
web_1  | [2026-01-15 08:32:24 +0000] [6] [ERROR] Error handling request (no URI read)
web_1  | Traceback (most recent call last):
web_1  |   File "/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py", line 133, in handle
web_1  |     req = next(parser)
web_1  |           ^^^^^^^^^^^^
原因:

GunicornのデフォルトワーカーであるSync Workerが接続の中断に弱く、HTMX のように細かい非同期リクエストが多く発生する環境ではタイムアウトになりやすいため。

解決策:

Gunicornのワーカーをgthreadに変更する。

gunicorn --worker-class gthread

Proxmoxについてのメモ

Proxmoxを使う上での雑多なメモ。 自分用です。

  • zfsのzvolの作成、圧縮方式、仮想マシンへのセット:
    • 作成する: zfs create -V 64gb rpool/vm-101-disk-0
    • 圧縮方式をセットする: zfs set compression=lz4 rpool/vm-101-disk-0
    • 仮想マシンにセットする: qm set 101 --scsi0 rpool:vm-101-disk-0
  • ISOファイルをアップロードする: データセンター > ノード > アップロード先ストレージをクリック > ISOイメージ > 「アップロード」または「URLからダウンロード」
  • コマンドラインからVMを作成する: qm create 101 --name vm101 --memory 4096 --net0 virtio,bridge=vmbr0
  • Windows 11のインストール:

Lenovo ThinkStation P520cについてのメモ

参考資料

ProxmoxのためのBIOS設定

上記Linux Setup Guideを参照。

  • 起動時Lenovoロゴの表示中にF1キーを押してBIOSセットアップに入る
  • Exit → OS Optimized Defaults: Enabledにする
  • Security → Secure Boot: Disabledにする
  • (念のため) Advanced → Intel VT for Directed I/O (VT-d): Enabled
  • (念のため) Advanced → Intel VMD Technology: Disabled
  • Save & Exit