4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

24時間動かすPythonボットで、Windowsターミナルがメモリを7.5GB食っていた話と対策

4
Last updated at Posted at 2026-10-08

何が起きたか

ミニPC(メモリ16GB、実際に使えるのは約12.7GB)で、ビットコインの自動売買ボット(Python)を24時間動かしていました。ある朝、PCが重くてマウスもまともに動かない状態に。

タスクマネージャーで調べると、犯人は ボットを表示していた Windows Terminal でした。

プロセス メモリ(コミット)
WindowsTerminal 約7.5GB
Claude(アプリ+セッション) 約5.3GB
Chrome 約2.7GB

ボットは数秒ごとに価格をコンソールに print していて、それを4日間表示し続けた結果、ターミナル側のメモリがふくらんでいました。

対策:出力を画面ではなくファイルに書き出す

起動用のバッチファイルを、出力をログファイルにリダイレクトする形に変えました。

@echo off
chcp 65001 >nul
cd /d "%~dp0"
set "LOGDIR=%LOCALAPPDATA%\bot_logs"
if not exist "%LOGDIR%" mkdir "%LOGDIR%"
set PYTHONIOENCODING=utf-8
set PYTHONUNBUFFERED=1
for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyyMMdd_HHmmss"') do set TS=%%i
set "LOGFILE=%LOGDIR%\console_%TS%.log"
echo Logging to "%LOGFILE%"
python your_bot.py >> "%LOGFILE%" 2>&1
pause

ポイントは3つです。

  • PYTHONUNBUFFERED=1:リダイレクト時もログが溜め込まれず、すぐファイルに書かれる
  • PYTHONIOENCODING=utf-8:日本語の出力が文字化けしない
  • ログの置き場所を OneDriveなどの同期フォルダの外 にする(数秒ごとに書き換わるファイルを同期させるとCPUやディスクの負荷になる)

ログを見たいときは PowerShell で追いかけられます。

Get-Content -Wait -Tail 30 "$env:LOCALAPPDATA\bot_logs\console_YYYYMMDD_HHMMSS.log"

結果

ターミナルを閉じてこの形で起動し直したところ、コミット済みメモリが 28.5GB → 20.3GB(約8GB減) になり、PCの重さも解消しました。

まとめ

  • 長時間動かすスクリプトの出力を、ターミナルに出しっぱなしにしない
  • 出力はファイルへ。同期フォルダの外に置く
  • メモリが直付けで増設できないミニPCでは特に効く

24時間動かしているミニPCの実機レビューや、自宅での自動化の構成はブログにまとめています。
https://www.pizzaroad888star.com/gmktec-m8-review/

なお、Instagramのリール動画をPythonで自動で作るスクリプトは、作り方つきでnoteにまとめています。
https://note.com/minipc_lab/n/nba895292a3ad

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?