## 結論
shadow(本番91.200.242.11/tailscale 100.115.94.5)とarcana(100.125.166.65)の**2ホスト間は回線が遅く、あらゆる負荷分散移譲の根本ボトルネック**。2026-06-06に複数の移譲を試み全て同じ壁に当たった。
## 実測値
- **Tailscale ping RTT 平均323ms(最小28ms・最大508ms・不安定)**。同一DC内なら本来1ms未満。shadowが遠隔VPS+DERP relay経由の疑い
- **Ollamaモデル6.5GB転送はrsyncで数分かかる**(レジストリ直pullは9KB/sで8時間級=非現実的)
## 試みた移譲と結果(全て不可/中止)
1. **Web/DB移設(anime/mail/llm-wiki→arcana)**: vvv_prod(3GB)に全サービス相乗り(vvv-api/scheduler-tick書く側含む)。フロント移設→DB323ms越し/DB移設→書く側323ms越しで問題が裏返るだけ。**不可確定**
2. **Ollama完全移譲**: モデル転送が①レジストリpull遅すぎ②rsync中にarcana Ollama起動でGC削除③tar pipe不完全終了、で4回失敗。**中止しshadow維持**。Ollamaはshadowで無傷(3モデル6.5GB・embed 768次元OK)
## 有効だった対策(掃除のみ)
- arcana大掃除: 廃止vvv残骸/runner3個/infra runner/PG(vvv_dev)/nginx/backups撤去で**約5.6GB解放**(53%)
- shadow Phase A掃除: ms-playwright(631MB)+bgutil(417MB)削除で**約1GB解放**
## Ollama移譲を将来やる場合の正しい手順(教訓)
- **転送中はarcana Ollamaを必ず停止+disable**(起動中だとGCが転送途中blobを削除する。`OLLAMA_NOPRUNE:false`でも"unused blobs removed: 0"と出るがmanifest不整合blobは消える)
- blobs/とmanifests/を別々にrsyncするとmanifest参照blobのハッシュ不整合でOllama起動時GC削除→models全体をOllama停止状態で一括rsync
- Tailscale IP限定bind(`OLLAMA_HOST=100.125.166.65:11434`)で0.0.0.0公開を避ける(instinct準拠)
## 根本解決の前提(未実施)
- ①Tailscaleダイレクト接続化でレイテンシ数ms化 ②またはvvv_prodからanime/mail/wikiテーブルを別DB分離(大規模・本番高リスク)。どちらか整うまで移譲は時期尚早
- メモリ逼迫の本丸はフロント(合計~90MB)でなくバックエンド(vvv-api相乗り/scheduler/playwright/CI/Ollama 2.1GB)
## bgutil削除の副作用(因果)
- shadowの`~/bgutil-ytdlp-pot-provider`(417MB・PO Tokenプロバイダ)をPhase A掃除で削除→**yt-dlp字幕取得が全滅**(`[GetPOT] Failed... No request handlers configured`)。yt-learnはNotebookLM直接ソース追加で回避。字幕復旧にはbgutil再導入が必要
関連: project-shadow-arcana-topology(MEMORY.md)・arcana掃除記録(同日)
shadow⇔arcana間は高レイテンシ(323ms)で全移譲のボトルネック 2026-06-06