Project

General

Profile

Actions

機能 #98

open

サーバーが重い

Added by K Okuda 2 days ago. Updated 2 days ago.

Status:
新規
Priority:
通常
Assignee:
Start date:
11/03/2025
Due date:
% Done:

0%

Estimated time:
Spent time:
Actions #1

Updated by K Okuda 2 days ago

1️⃣ journal を永続化(重要)

sudo mkdir -p /var/log/journal
sudo sed -i 's/^#\?Storage=.*/Storage=persistent/' /etc/systemd/journald.conf
sudo systemctl restart systemd-journald

これだけで 再起動前ログが消えない

2️⃣ sysstat(sar)を有効にする

sudo dnf install -y sysstat
sudo systemctl enable --now sysstat

CPU/メモリ/IOの履歴が取れる
コスト軽い、入れ得

3️⃣ 超ライトスナップショット(5分ごと1ファイル)

CPU/メモリ上位プロセスだけ記録

sudo tee /usr/local/bin/minisnap.sh >/dev/null <<'EOF'
#!/usr/bin/env bash
TS=$(date '+%Y%m%d-%H%M%S')
out="/var/log/minisnap-$TS.log"
{
  echo "### $TS"
  uptime
  ps aux --sort=-%mem | head -n 10
  ps aux --sort=-%cpu | head -n 10
} >> "$out"
EOF

sudo chmod +x /usr/local/bin/minisnap.sh

sudo tee /etc/systemd/system/minisnap.timer >/dev/null <<'EOF'
[Unit]
Description=Mini resource snapshot timer

[Timer]
OnBootSec=1min
OnUnitActiveSec=5min
Persistent=true

[Install]
WantedBy=timers.target
EOF

sudo tee /etc/systemd/system/minisnap.service >/dev/null <<'EOF'
[Unit]
Description=Mini resource snapshot service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/minisnap.sh
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now minisnap.timer

5分ごとに /var/log/minisnap-*.log へ
重いプロセスだけ残る=シンプルで確認超ラク

4️⃣ VSCode用 inotify 上限(安全に)

echo 'fs.inotify.max_user_watches=524288' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

VSCodeのファイル監視で詰まりにくくなる
(過負荷ではない=やって損なし)

Actions #2

Updated by K Okuda 2 days ago · Edited

[okuda@test ~]$ uptime
 18:17:24 up  1:18,  2 users,  load average: 0.01, 0.44, 1.63

uptimeで過去1分間、5分間、15分間のサーバー稼働状態が見れる

[okuda@test ~]$ free -m
               total        used        free      shared  buff/cache   available
Mem:            1506        1395          84           2         172         110
Swap:           2047         867        1180

swapをどれくらい使っているかに着目

[okuda@test ~]$ top -bn1 | head -20

見るポイント

%wa(wait):ディスクI/O待ち

%st:仮想環境でCPU奪われてるとき

RES:使ってる物理メモリ

[okuda@test ~]$ ps aux --sort=-%mem | head

メモリを多く食ってるプロセスTOP表示

ps aux --sort=-%cpu | head

CPUを多く食ってるプロセスTOP表示

journalctl -p 3 -n 20

優先度3(ERROR)のログを直近20件見る

dmesg | grep -i oom

OOMキラー発動確認

sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null

データをディスクに同期(sync)

数値 3 を tee で /proc/sys/vm/drop_caches に書く
→ キャッシュ解放のための指示

>/dev/null で表示を消す

Actions

Also available in: Atom PDF