第 3 部・応用機能 / 3.2

大容量ファイルとログ追跡

64 MiB 以上のファイルは全体をメモリーに読み込まず、読み取り専用の閲覧モードに切り替わります。250 ミリ秒ごとに変化を見ているので、ログの監視にとても向いています。

所要時間 約 10 分 対象 大きなファイルやログを見る人 前提知識 2.1 バージョン v1.0 ・ 2026-08-26
3.2.1

大容量ファイルモードに入る条件

数字はひとつだけ:64 MiB。

ファイルが 64 MiB 以上なら、Erya はメモリーに読み込みません。読み取り専用の閲覧モードに切り替え、「access.log を大容量ファイルの読み取り専用モードで開きました(512 MB)」と表示し、ステータス行のモードが 大容量ファイル・読み取り専用 になります。

爾雅 Erya │ [access.log]
F1 ヘルプ Ctrl+S 保存 Ctrl+W 検索 Ctrl+R 置換 Ctrl+B 矩形選択 Ctrl+K 行切取 Ctrl+X 終了
10.0.1.24 - - [26/Aug/2026:09:14:02 +0900] "GET /api/v1/orders HTTP/1.1" 200 10.0.1.31 - - [26/Aug/2026:09:14:02 +0900] "POST /api/v1/login HTTP/1.1" 302 10.0.2.10 - - [26/Aug/2026:09:14:03 +0900] "GET /static/app.js HTTP/1.1" 304
access.log │ 1284391:1 │ 大容量ファイル・読み取り専用 │ UTF-8 │ LF
access.log を大容量ファイルの読み取り専用モードで開きました(512 MB)
大きなファイルは 3 通りに分かれます
  • 大きな UTF-8 テキスト → 大容量ファイル読み取り専用モード(本章)。
  • 大きなバイナリ → ストリーム読みの 16 進数表示。こちらも読み取り専用(3.3.8 参照)。
  • 大きな非 UTF-8 テキスト(200 MB の Big5 出力など)→ ストリームで復号できないため、バイナリとして 16 進数表示で開きます。編集したいなら外部で UTF-8 に変換してください。
3.2.2

このモードでできること

読む・探す・コピーする。ただし変更はできません。

できること

  • スクロール、ページ送り、Ctrl+Home/Ctrl+End
  • Ctrl+G で行へ移動
  • Ctrl+W 検索と F3
  • 選択と Ctrl+C コピー
  • Ctrl+L 折り返し表示
  • Ctrl+P 16 進数表示
  • タブの追加・切り替え・終了

できないこと(「大容量ファイルは読み取り専用モードのため編集できません」)

  • 入力、削除、貼り付け、切り取り、行削除
  • 保存、名前を付けて保存
  • 置換(Ctrl+R/F5/F6)
  • 元に戻す・やり直す
  • 文字コード・改行コードの変換(F7/F8)
  • 整形、段落の再整形、矩形の埋め・移動
  • 定型文の挿入、マクロの実行
このモードで起きない 2 つのこと
  • シンタックスハイライトはありません。ハイライトは全体の解析が必要なので、意図的に無効です。
  • 左右比較もできません。F4 で選ぶと「ファイル全体の読み込みによるメモリー不足を避けるため、大容量ファイルの読み取り専用モードでは左右比較を利用できません」と断られます(3.4.9 参照)。
3.2.3

メモリーを節約する仕組み

道しるべだけを覚え、必要な行だけディスクから読みます。

ディスク上の 512 MB のファイル ストリームで 1 回だけ走査 1 行目 4097 行目 8193 行目 12289 行目 16385 行目 … メモリーに残すのはこのチェックポイントだけ:4096 行ごとに 1 つの位置 9000 行目を出すときは、8193 行目のチェックポイントから 807 行ぶん読み進めます メモリーマッピングは使わず、1 行が極端に長い場合も先頭 1 MiB までのプレビューにとどめます
図 3.2.1 疎な行インデックス。開くときに 1 回走査してチェックポイントを作り、以後は画面が必要とする行だけ読みます。512 MB でもメモリーを使い切りません。500 MiB のファイルで実測済みです。
3.2.4

伸び続けるログを追う

250 ミリ秒ごとに確認し、新しい内容が自然に現れます。

このモードがいちばん役に立つ場面です。検索もでき、遡ってもスクロールできる tail -f だと思ってください。

  1. 追記なら軽い処理です。「まだ書き終わっていない最終行」と新しい内容だけを作り直し、ファイル全体を走査し直しません。だから大きくても遅くなりません。
  2. カーソルが末尾にあれば追従します。最終行の行末にいると、新しい内容が来るたび画面が進みます。これが追従モードです。
  3. 離れれば止まります。遡って読んでいるあいだは、その位置に固定されます。追従に戻すには Ctrl+End を押してください。
  4. 更新時には「外部ファイルの更新を検出し、内容を再読み込みしました」と出ます。
ログを見るときの定番手順

erya /var/log/nginx/access.log → Ctrl+End で追従開始 → 調べたくなったら Ctrl+W と F3 → 終わったら Ctrl+End で追従へ復帰。エディターから出る必要はありません。

3.2.5

切り詰めとローテーション

「伸びる」のではなく「入れ替わる」場合の話です。

ディスク上で起きたことErya の対応よくある原因
末尾へ追記新しい部分だけ足す。高速サービスがログを書き続けている
中身が空になった(切り詰め)開き直してインデックスを作り直す> access.log、logrotate の copytruncate
その場で書き換えられた開き直してインデックスを作り直す作り直された帳票など
ファイルが入れ替わった(ローテーション)開き直してインデックスを作り直すlogrotate が旧ファイルを退避
ローテーション後は新しいファイルを見ています

Erya が追うのはパスです。access.log が入れ替われば、見えているのは新しいほう(たいてい空か短い)で、古い内容は access.log.1 にあります。必要なら別タブで開いてください。

3.2.6

通常ファイルの外部変更

小さなファイルも見ています。違うのは反応の仕方だけです。

同じ 250 ミリ秒の確認は通常ファイルにも走ります。違いは、通常ファイルは編集できるため、あなたが編集したかどうかを見分ける必要がある点です(詳細は 2.1.7):

種類未編集編集済み
通常のテキスト自動再読み込み。元に戻す履歴は消えます警告のみ。保存時に赤い確認行(O/R/N)
大容量ファイル自動で再読み込み起こりません。編集できないモードです
3.2.7

外部変更の 3 つの結末

遭遇したときに見る表です。

メッセージ行色すべきこと
外部更新を検出し、ファイルを安全に再読み込みしました黄何もしなくて構いません。内容は最新ですが、元に戻す履歴は消えています。
外部ファイルの更新を検出し、内容を再読み込みしました黄大容量ファイルモードの自動更新です。何もしません。
ファイルが外部で変更されました。保存前に確認が必要です黄警告のみで、まだ止められていません。確認は保存時に出ます。
外部ファイルが更新されています:[O]上書き、[R]再読込、[N/Esc]取消赤判断が必要です。迷ったら N、次に F12 で控えを保存(2.1.7)。
外部ファイルの再読み込みに失敗しました:…黄削除された、権限が変わった、ディスクの問題など。ファイルの存在を確認してください。
3.2.8

よくあるつまずき

大容量ファイルモードの疑問 6 つ。

症状原因と対処
入力しても反応せず、読み取り専用と出る64 MiB 以上のためです(3.2.2)。編集するには外部で分割するか、必要な部分を取り出します。
シンタックスハイライトが無いこのモードでは意図的に無効です(3.2.2)。
画面が勝手に末尾へ飛ぶカーソルが末尾にあり追従中です。遡れば止まります(3.2.4)。
画面が更新されなくなったカーソルが末尾から離れています。Ctrl+End を(3.2.4)。
ログが急に空になった切り詰めかローテーションで、新しいファイルを見ています(3.2.5)。
大きな日本語ファイルが 16 進数で開く非 UTF-8 の大きなファイルはストリームで復号できません(3.2.1)。先に UTF-8 へ変換を。