昨日から,自宅のサーバ FreeBSD 10.1-RELEASE に手元の Mac OS から遠隔ログインすると,むちゃくちゃ遅い状態になっていた。脆弱性の発見されたパッケージを対策版にアップデートしたり,freebsd-update コマンドでシステムを最新化したりしたので,この過程でなにかよからぬ事態になったのかも知れなかった。
Mac OS から rlogin を発行しサーバに接続すると,login 時に出力される /etc/
/etc/
.tcshrc の記述は,コマンドエイリアスやら,実行パス,環境変数の定義ばかりであって,CPU リソースを要するような処理をしているとはとても思われない…,と,ふと気づく。
set history = 1000 set savehist = (1000 merge)
コマンド発行履歴を保持するコマンドヒストリ機能か。すぐ .history ファイルを確認してみる。と,なんとファイル容量が 300MB にもなっている。ログイン,ログアウト時にヒストリファイルを 300MB も読み書き・解析していれば,遅いのは当然である。私はコマンド履歴を 1000 程度しかもたないような定義にしているので,この容量はデカ過ぎる。なにかの間違いでこのファイルが肥大化されてしまったらしい。中味を見てみると,バイナリデータが混じっていてヒストリファイルとしては壊れていた。
となると,対策は簡単。.history ファイルを単純に消せばよかった。これで一瞬でログイン・ログアウトが出来るように復旧した。問題は解決。なぜにヒストリファイルが肥大化していたのか,根本原因はわからずじまいのわけだが,これ以上調べても今の資料では判明しそうにない。これを機会に /etc/
Mac OS Terminal から FreeBSD Server に遠隔ログインする