[{"data":1,"prerenderedAt":249},["ShallowReactive",2],{"content-/pc-memory-irodori-gpu":3,"all-pages-for-dir":227,"related-/pc-memory-irodori-gpu":228,"og-image-/pc-memory-irodori-gpu":248},{"id":4,"title":5,"body":6,"category":206,"concepts":207,"description":208,"extension":209,"meta":210,"navigation":211,"ogImage":207,"path":212,"project_name":213,"published":214,"publishedAt":215,"seo":216,"source":217,"stem":218,"tags":219,"todo":207,"unpublished":214,"updatedAt":207,"__hash__":226},"pages/2026-09/2026-09-27/pc-memory-irodori-gpu.md","PCのメモリ逼迫を調査した記録：Irodori-TTSのモデルをGPUで組み立て、不要なMySQLを削除する",{"type":7,"value":8,"toc":192},"minimark",[9,13,17,22,25,29,32,35,39,42,50,53,66,70,77,80,83,94,97,100,103,106,109,113,116,120,123,126,133,137,140,147,158,162,172,175,178,189],[10,11,5],"h1",{"id":12},"pcのメモリ逼迫を調査した記録irodori-ttsのモデルをgpuで組み立て不要なmysqlを削除する",[14,15,16],"p",{},"朝7時の時点で、メモリの使用率は82%ほどあった。\nこの PC はメモリを使い切って落ちることがある。\n前日にも dev サーバーまわりの対策を計画書にまとめて手を入れたが、何が PC を落としているのかは、まだ突き止められていない。\nそこで Claude Code に「余計なやつ」の調査を頼み、前日の計画書と照らして現状を見てもらった。",[18,19,21],"h2",{"id":20},"_0700-の現状と前日の対策の効き目","07:00 の現状と、前日の対策の効き目",[14,23,24],{},"最初の報告では、物理メモリ 31.9GB のうち空きは 7.0GB だった。\n82% の約4割を、Irodori-TTS のナレーション生成（python）1本が使っているという。\n前日の計画書にあった dev サーバー対策は全部済んでいて、eurekapu の dev サーバーは 1.5GB まで下がっていた。\n前日の対策は効いていた。\nこの時点では、Irodori がいちばんの食い手ということになっていた。",[18,26,28],{"id":27},"おすすめ順に進めたら3つとも自動モードに止められた","おすすめ順に進めたら、3つとも自動モードに止められた",[14,30,31],{},"おすすめの順番でそのまま進めてもらうことにした。\nところが、サービスの停止もプロセスの終了も、自動モードの権限判定で拒否された。\n結局3つとも止められ、何も変わらなかった。\nClaude Code は止められた時点でやめていて、同じ操作を別の方法で試してはいなかった。",[14,33,34],{},"管理者権限の要る操作は、自分で管理者の PowerShell を開いて打つことにした。\nClaude Code が、管理者権限なしでは MySQL の用途まで届かないと判断したところで、計画書と選択肢を作ってもらった。\n計画書は Codex のレビューに出し、重複していた節を消したり Irodori の節を直したりして、再レビューで「承認」をもらった。\n計画書を HTML にして決裁フォームを立ち上げ、判断を3件選んだ。",[18,36,38],{"id":37},"sql-server-が2つmysql-が1つ","SQL Server が2つ、MySQL が1つ",[14,40,41],{},"調べてもらうと、SQL Server は2つ入っていた。\n動いている方（MSSQLSERVER）は税務ソフトA用で、止まっている方は会計ソフトC用だった。\n会計ソフトC用のインスタンスは消せる。\nただ、会計データ本体がこのインスタンスの中にあるので、消すなら先に退避が要る。",[14,43,44,45,49],{},"MySQL は税務ソフトAの部品ではなく、2023年12月に自分で入れた開発用のようだった。\n中身を見ると、自分で作った DB は1つもない。\n入っていたのは MySQL 自身が使うシステム用の DB と、",[46,47,48],"code",{},"sakila"," だけだった。",[14,51,52],{},"決裁フォームでは、最終的に次のように選んだ。",[54,55,56,60,63],"ul",{},[57,58,59],"li",{},"判断1（税務ソフトAの SQL Server）：C「いまのまま」",[57,61,62],{},"判断2（MySQL）：C「アンインストール」",[57,64,65],{},"判断3（Irodori）：A「測ってから選ぶ」",[18,67,69],{"id":68},"_13個の-mysql-部品を管理者-powershell-で消す","13個の MySQL 部品を管理者 PowerShell で消す",[14,71,72,73,76],{},"最初につまずいたのは、管理者で開いた PowerShell へのコピペだった。\nWin+X から「ターミナル（管理者）」で開いた Windows Terminal なら、ドラッグで選んで ",[46,74,75],{},"Ctrl+C","（または右クリック）でコピーできる、と教わった。",[14,78,79],{},"スクショを見ると、消す対象が13個あった。\n「13個あるみたいですけど、これ全部消すんですかね。めんどくさいな」と Claude Code に投げた。\n画面から1つずつ消す必要はなく、管理者の PowerShell でコマンドを実行すればまとめて消せる。\nただし、画面で進んでいる「Preparing to remove...」が終わるまでは待つ。\nWindows のインストーラーは同時に1つしか動かせず、並べて走らせるとエラー 1618（別のインストールが進行中）で失敗するからだ。",[14,81,82],{},"一覧を貼って見てもらうと、13個とも MySQL の部品で、Installer の2つは最後に並んでいた。\nただ、13個とも一覧に残っていたので、「Preparing to remove...」は終わっていないか、途中で止まっていたらしい。\nその画面が消えたのを確かめてから、同じ PowerShell で実行した。",[14,84,85,86,89,90,93],{},"今度は PowerShell の表示がいつまでも先へ進まない。\nスクショを貼って相談すると、MySQL Server 8.2 の削除自体は 07:50:18 に成功で終わっていた（Windows のイベントログで確認）。\n見立ては「本体の ",[46,87,88],{},"mysqld.exe"," は消えたが、MySQL のサービスが動いたまま残っていて、",[46,91,92],{},"Start-Process -Wait"," がその終了を待っている」というものだった。\nこの見立ては外れた。\n最終的に13個とも終了コード 0 で終わり、単に時間がかかっていただけだった。",[14,95,96],{},"そのあと残っていた3つも片付け、サービス、プロセス、アンインストール一覧、ポート 3305、フォルダのどれにも MySQL は残らなかった。\nそれでも物理メモリは 26.7GB 使用のままで、下がったのは MySQL の約0.6GB 分くらいだった。\n原因は MySQL の外にある。",[18,98,99],{"id":99},"メモリを1分ごとに記録する",[14,101,102],{},"MySQL の削除を待つあいだに、計画書の Step 1 として、メモリを1分ごとに記録する仕組みを Claude Code に作ってもらった。\n1回あたり約1秒で動いた。\nChrome のように細かいプロセスが多いものは合計が見えないので、プロセス名ごとの合計の列も足した。\nスクリプトは ASCII のみで書き、ログオン時に自動で起動するよう登録した。\n2つ目を起動してもすぐ終了し、常駐は1本だけのままだった。",[14,104,105],{},"記録は 07:50 から続き、08:07 までで18行、08:49 までで60行たまった。\n間隔は60〜61秒で、抜けはなかった。",[14,107,108],{},"途中で、chrome-devtools-mcp が20個、合わせて 3.2GB あるのも見つかった。\nClaude のセッションは4つしかないのに多すぎるので、親のセッションが残っているかを調べてもらった。",[18,110,112],{"id":111},"irodori-は物理メモリをどれだけ使っているか","Irodori は物理メモリをどれだけ使っているか",[14,114,115],{},"判断3のとおり、Irodori のメモリの内訳を測ってもらった。\n本番と同じ条件（参照音声あり）で2回動かした結果、物理メモリの使用は常時約4GB で、読み込み中の約5秒だけ 6.7GB まで上がる。\n朝に見た 12.9GB はコミット（予約した量）で、物理メモリをそれだけ使っていたわけではなかった。\nIrodori 単体で PC が落ちるとは考えにくい。\n朝の「約4割」の見立ては、ここで崩れた。",[18,117,119],{"id":118},"モデルを-gpu-の上で組み立てる","モデルを GPU の上で組み立てる",[14,121,122],{},"続けて、Irodori の対策を進めてもらった。\nIrodori のモデルを GPU の上で組み立てても音声が変わらないかを確かめてもらった。\nまず、合成のたびに seed がかけ直されているかをコードで確認した。\nCPU で組み立てた場合は2回とも完全に一致したが、GPU で組み立てた場合とは波形が一致しなかった（長さは同じ）。\nどの程度違うのかを測ってもらい、本番スクリプトに GPU で組み立てる関数を足した。",[14,124,125],{},"本番スクリプトの出力先だけを scratchpad に変えて1区間まるごと流し、既存の本番音声とハッシュを比べ、あわせてメモリも測った。\nコミットは、コミット前に走る Codex レビューで止められ、そのうち1件は「手順1（確認）と手順2（コピー）の対象がずれている」という指摘だった。\nClaude Code はこれを high と判断して直した。",[14,127,128,129,132],{},"結果として、音声は今までとビット単位で同じまま、1区間（",[46,130,131],{},"absolute-ref-breaks","、52文）を作るあいだのメモリの山が下がった。\n直した記録係を起動し直し、8コミット（前日の分6つを含む）を push した。",[18,134,136],{"id":135},"全スクリプトを-gpu-へスキルにはルールとして","全スクリプトを GPU へ、スキルにはルールとして",[14,138,139],{},"報告を読むと、Irodori を使う他のスクリプトは CPU でモデルを組み立てたままだった。\n「全部 GPU にしたほうがいいんじゃないか」と伝えた。\nあわせて、Irodori-TTS を使うスキル側に、今回メモリが逼迫して落ちた経緯を書いたうえで、新しくスクリプトを作るときは GPU で組み立てる方にする、というルールを足してほしいと頼んだ。\n経緯まで要るかは、頼みながら迷っていた。",[14,141,142,143,146],{},"intro の合成は170文あり、10分ほどかかる。\n待つあいだに、スキルへのルール追加を先にコミットしてもらった。\nGPU のメモリが 8GB 中 7.5GB まで埋まる点は、いまは問題ではないという。\n内訳は Irodori が約5.5GB、残りの約2GB は画面表示や Chrome など、普段から GPU を使っているものだ。\nIrodori は ",[46,144,145],{},"with-lock"," で1本ずつしか動かないので、Irodori 同士で取り合うことはない。",[14,148,149,150,153,154,157],{},"本番用の ",[46,151,152],{},"generate-excel-intro-irodori.py"," で170文を作り直し、前回（09-24）の出力と比べた。\n170文すべて、完成した mp3、時刻データ（",[46,155,156],{},"excelIntroRender.json","）が1バイトも違わず一致した。\n確認用のフォルダは消し、両方のリポジトリを push した。",[18,159,161],{"id":160},"_1105-dev-サーバーの再起動が止められた","11:05 dev サーバーの再起動が止められた",[14,163,164,165,171],{},"11時過ぎ、dev サーバー（",[166,167,170],"a",{"rel":168},[169],"nofollow","http://localhost:3200）が止まっていた。","\nバックグラウンドで動いていた「dev サーバーを起動し直す」コマンドを、メモリがひどく不足していたため Claude Code 自身が止めていた。\nコマンドやサーバーの不具合ではない。\nメモリがまだ足りない可能性があるので、起動し直さずに声がかかるのを待つ、という報告だった。",[14,173,174],{},"画面再現の確認作業から始めたかったので、Google タスクの今日の分に加えてもらった。\n「マイタスク」に、9/27 期限で「Excel関数の活用：画面再現の確認作業（残り18本）」が入った。\n題と期限が正しく入っていることは、登録結果で確かめてもらった。",[18,176,177],{"id":177},"学び",[54,179,180,183,186],{},[57,181,182],{},"朝に見た Irodori の 12.9GB はコミット（予約した量）で、物理メモリの使用は常時約4GB だった。コミットを物理メモリの使用と読むと、食い手を見誤る。",[57,184,185],{},"MySQL を消しても、下がったのは約0.6GB だった。消して下がった量を見たことで、原因が MySQL の外にあると分かった。",[57,187,188],{},"GPU でモデルを組み立てると、最初の比較では波形が合わなかった。最終的な本番スクリプトでは、音声がバイト単位で一致することを170文すべてで確かめてから切り替えた。",[14,190,191],{},"PC を落としている犯人は、まだ分からない。\nIrodori 単体では落ちないと分かり、MySQL も消したのに、11時過ぎにはメモリ不足で dev サーバーの再起動まで止まった。\n1分ごとの記録は、今もログオンのたびに動き出す。",{"title":193,"searchDepth":194,"depth":194,"links":195},"",2,[196,197,198,199,200,201,202,203,204,205],{"id":20,"depth":194,"text":21},{"id":27,"depth":194,"text":28},{"id":37,"depth":194,"text":38},{"id":68,"depth":194,"text":69},{"id":99,"depth":194,"text":99},{"id":111,"depth":194,"text":112},{"id":118,"depth":194,"text":119},{"id":135,"depth":194,"text":136},{"id":160,"depth":194,"text":161},{"id":177,"depth":194,"text":177},"dev",null,"メモリ使用率82%のWindows機で食い手を調べた。Irodori-TTSの12.9GBはコミット量で物理は常時約4GB、MySQL削除で下がったのは約0.6GB。全スクリプトをGPUでモデルを組み立てる方式に切り替え、音声がバイト単位で一致することを確かめた。","md",{},true,"/pc-memory-irodori-gpu","eurekapu-nuxt4",false,"2026-09-27T00:00:00.000Z",{"title":5,"description":208},"make-diary","2026-09/2026-09-27/pc-memory-irodori-gpu",[220,221,222,223,224,225],"メモリ","Windows","Irodori-TTS","GPU","PowerShell","Claude Code","c9YS8P3zrEYllVxgBolRqgUPYCmGV70L6F_LSnvDAjM",[],[229,232,236,240,244],{"title":230,"path":231,"publishedAt":215},"2026年9月27日の開発日記 - 伏線回収漫画183作品のランキング公開、RSVP速読リーダー着手、PCのメモリ調査","/2026-09-27-diary",{"title":233,"path":234,"publishedAt":235},"Excel講座のナレーションを本人の声で一括合成した日：Irodori-TTSをWindowsとMacで分担する","/excel-course-narration-mac-windows-split","2026-09-22T00:00:00.000Z",{"title":237,"path":238,"publishedAt":239},"Volta から mise への移行完了 - Claude Code を入れ直すまでに詰まった5つの落とし穴","/volta-to-mise-migration-complete","2026-04-23T00:00:00.000Z",{"title":241,"path":242,"publishedAt":243},"Claude Code 安全な自律実行環境 構築ガイド","/claude-code-safe-autonomous-setup","2026-03-20T00:00:00.000Z",{"title":245,"path":246,"publishedAt":247},"Claude CodeのプロンプトをOpus 5.5前提で棚卸しした日。フックの30秒タイムアウトとPCの空き容量も調べた","/prompt-audit-opus55-and-pc-cleanup","2026-09-25T00:00:00.000Z","https://log.eurekapu.com/og/blog/pc-memory-irodori-gpu.png?v=2026-09-27T00%3A00%3A00.000Z&title=PC%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E9%80%BC%E8%BF%AB%E3%82%92%E8%AA%BF%E6%9F%BB%E3%81%97%E3%81%9F%E8%A8%98%E9%8C%B2%EF%BC%9AIrodori-TTS%E3%81%AE%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92GPU%E3%81%A7%E7%B5%84%E3%81%BF%E7%AB%8B%E3%81%A6%E3%80%81%E4%B8%8D%E8%A6%81%E3%81%AAMySQL%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B&author=Kei%20Komatsu&sig=bdaaf1403ba036e3",1790554828354]