2009年9月22日火曜日

SSD環境のOS設定(WindowsXPの設定)

SSDは高速なストレージだが、デメリットに書換え回数の上限値(1万回~10万回)などのデメリットがあるため、RAMディスク、HDDと併用で使用した方が良いと考える。(SSD/RAMディスクのメリット・デメリット
加えて、SSDのデメリットを低減するために、OSの設定を行った方が良いと思う。
SSD、RAMディスクと併用使用時の自分が行ったOS(WindowsXP SP3)の設定を記す。

  1. ページングファイル(仮想メモリ)の設定変更
    ページングファイルは、書換えが多いため、SSD以外のドライブへ移動する。
    または、メモリ容量(最低でも2GB以上)によっては、"ページングファイルなし"に設定する。
    【設定】
    [コントロールパネル]→[システム]→[詳細設定]→[パフォーマンス]→[詳細設定]→[仮想メモリ]

  2. 一時フォルダ(TEMP)の移動
    OSやアプリケーションが利用する一時フォルダ。書換えが多いため、RAMディスクやHDDへ移動を行う。
    【設定】"Tempフォルダの場所を変更する(@IT)"
    http://www.atmarkit.co.jp/fwin2k/win2ktips/389extprec/extprec.html

  3. "マイドキュメント"、"デスクトップ”フォルダの移動
    ユーザデータの書換えが多い"マイドキュメント"、"デスクトップ"フォルダをHDDへ移動を行う。
    【設定】"[マイ ドキュメント]フォルダの場所を移動する(@IT)"
    http://www.atmarkit.co.jp/fwin2k/win2ktips/932mydocmove/mydocmove.html
     
    【設定】"デスクトップ"フォルダの移動
    レジストリの変更(regedit.exe)
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
    の「Desktop」を移動先のフォルダへ変更
  1. 自動デフラグ設定の停止
     SSDはディスクを持たないため、デフラグする必要がない。また、デフラグは書換えが多く寿命を短くするだけなので、停止する。
     
    【設定】アイドル時の自動デフラグを停止
    レジストリの変更(regedit.exe)
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout
    の DWORD値「EnableAutoLayout」(なければ、新規に作成)の値を「0」に設定する。
    (レジスト記述例)
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]
    "EnableAutoLayout"=dword:00000000

    【設定】システム起動時の自動デフラグの停止
    レジストリの変更(regedit.exe)
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction
    の「Enalbe」を「N」に設定する。
    (レジストリファイル記述例)
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]
    "Enable"="N"

  2. アクセス日時の非更新設定
    ファイルや、フォルダへの最終アクセス日時を更新しないように設定する。
    【設定】
    レジストリの変更(regedit.exe)
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    の"NtfsDisableLastAccessUpdate"を"dword:1"(更新を行なわない) に設定
    #NtfsDisableLastAccessUpdate=dword:0(初期値:更新を行なう)

  3. 「ディスクの書込みキャッシュを有効にする」のチェックをはずす。
    【設定】
    [コントロールパネル]→[システム]→[ハードウェア]→[デバイスマネージャー]→[ディスクドライブ]→"SSDのデバイスを選択"→[ポリシー]

※その他の設定
 ・休止状態の無効化⇒⇒電源オプションから設定
 ・システムの復元の無効化⇒⇒システムのプロパティから設定
 ・"窓の手"等により、"カーネルを常に物理メモリに配置"するよう設定
 ・ブラウザのキャッシュをRAMディスク等へ移動する。

XP 最適化

ショートカット・ファイルのリンク先を探索する機能を停止させる

Windowsにはファイルのショートカットを作成し,オリジナルのファイル名を変更してもショートカットのリンク先を自動的に探すという機能が備わっているが,この機能はファイル名の変更を常に監視しており,システム・パフォーマンスを低下させている。この機能を停止するには,レジストリのキー HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies \ExplorerにNoResolveTrackとNoResolveSearchの2つのDWORD値を作成し,値をそれぞれ1にする。


最近使ったファイルを記録する機能を停止する

Windowsでは最近使ったファイルの名前をレジストリに記録しているため,ファイルの監視によるシステム・パフォーマンスの低下と,レジストリの肥大化を引き起こす。この機能を停止するには,レジストリのキーHKEY_CURRENT_USER\SOFTWARE\Microsoft \Windows\CurrentVersion\Policies\ExplorerにNoRecentDocsMenuというDWORD値を作成し,値を1にする。


ワトソン博士を無効化する


ワトソン博士とはシステムとアプリケーションの障害を監視し,記録するプログラムのこと。必要なければ,レジストリのキー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebugにAutoというDWORD値を作成し,値を0にする。


日付と時刻の自動同期を停止する


定期的にインターネット上にあるタイムサーバーにアクセスして,コンピュータの時刻を正確な時刻に合わせる機能。必要なければ,コントロール・パネルの日付と時刻のプロパティから,インターネット時刻タブの自動的にインターネット時刻サーバーと同期するのチェックを外す。


別の場所からコンピュータを使う機能を無効化する

Windows XPには外部のネットワークからコンピュータを操作する機能が搭載されているが,その機能を使用していなくても若干システム・リソースを消費している。必要なければ,コントロール・パネル→システムのプロパティ→リモート・タブを辿り,このコンピュータからリモートアシスタントの招待を送信することを許可するとこのコンピュータにユーザがリモートで接続することを許可するのチェックを外す。


ユーザの簡易切り替えを無効化する


Windows XPではログオフせずにユーザを切り替える機能が備わっているが,その機能が若干システム・リソースを消費している。必要なければ,コントロール・パネル→ユーザアカウント→ユーザのログオンやログオフの方法を変更するを辿り,ユーザの簡易切り替えを使用するのチェックを外す。


電源を常にオンにする

Windowsでは電源設定によって一部の処理が変わるため,パフォーマンスの低下を招いていることがある。コントロール・パネル→電源オプション→電源設定タブを辿り,電源設定を常にオンに設定する。


大容量メモリのパフォーマンスを最適化する


Windows XPではメモリの使用方法を自動的に調整するが,コンピュータの使用形態やハードウェア特性に合わせた設定を行うことでパフォーマンスを改善できることがある。これらの設定は,レジストリのキーHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \SessionManager\MemoryManagementで行う。

物理メモリの容量が512MB以上なら,カーネルに割り当てるメモリ領域を物理メモリのみに限定することができる。この設定によってカーネル・メモリがスワップ・アウトされないため,動作が高速に保たれる可能性がある。設定するには,DisablePagingExecutiveというDWORD値を作成し,値を1にする。

物理メモリの容量が十分にある場合,入出力に用いるバッファ・サイズを調整するとパフォーマンスが向上する可能性がある。設定するには,IoPageLockLimitというDWORD値を作成し,値を設定したいサイズにする(値はバイト単位)。一般的には4194304(4MB)程度に設定すると良い。

物理メモリをアプリケーション実行用に割り当てる(Standardファイル・システム・キャッシュ)か,優先的にファイル・システムのキャッシュに割り当てる(Largeファイル・システム・キャッシュ)かを選択することができる。規定値はStandardファイル・システム・キャッシュだが,ファイル・アクセスの多い環境ではファイル・システムのキャッシュに確保したほうがパフォーマンスが向上する可能性がある。Largeファイル・システム・キャッシュを使用するように設定するにはLargeSystemCacheというDWORD値を作成し,値を1にする。ただし,Largeファイル・システム・キャッシュではアプリケーション実行用メモリ領域がスワップ・アウトしやすくなるため,用途に合わせて慎重に選択したい。なお,Windows XPではコントロール・パネル→システムのプロパティ→詳細設定タブ→パフォーマンス→設定→詳細設定タブ→メモリ使用量から設定することもできる。プログラムを選択するとStandardファイル・システム・キャッシュが,システム キャッシュを選択するとLargeファイル・システム・キャッシュが設定される。

ダイレクト・マップ方式の2次キャッシュを採用しているプロセッサをもつコンピュータで,HALから2次キャッシュサイズを正しく取得できない場合に参照されるキャッシュ・サイズを設定することができる。設定するには,SecondLevelDataCacheというDWORD値を作成し,値を設定したいサイズにする(値はKB単位)。HALからデータを取得できず,SecondLevelDataCacheが設定されていないか,0に設定されている場合は256KBになる。プロセッサに合わせて,512KB程度に設定すると良い。なお,セット・アソシエイティブ方式の2次キャッシュを採用しているプロセッサを使用している場合は,この設定は適用されない。

クラシック表示に切り替える

Windows XPからエクスプローラのアイコンの表示方法が若干変わり,通常の表示より負荷が高くなっている。従来のクラシック表示に切り替えるには,フォルダ・オプションの全般タブにある従来の Windows フォルダを使うのチェックを入れる。


すべてのファイルとフォルダを表示する

通常エクスプローラでは隠しファイルおよび隠しフォルダを表示しないようになっているが,アイコンを隠すために若干負荷がかかっている。すべてのアイコンを表示するようにするには,フォルダ・オプションの表示タブにあるすべてのファイルとフォルダを表示するのチェックを入れる。


フォルダの表示設定を保存しないようにする

エクスプローラではウィンドウの大きさやアイコンの表示方法などを,各フォルダごとに保存するようになっている。この機能を停止するには,フォルダ・オプションの表示タブにある各フォルダの表示設定を保存するのチェックを外す。

ファイルのアクセス日時の記録を行わない

NTFSではファイルにアクセスすると,その日時を随時記録するため,パフォーマンスの低下を招いている。これを無効化するにはレジストリのキーHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystemにNtfsDisableLastAccessUpdateというDWORD値を作成し,値を1にする。


ドライブの自動再生を停止

ドライブにメディアが挿入されると自動的に再生するという機能は,メディアの挿入を常に監視しているため,ハード・ディスク・ドライブと光学ドライブが同じチャンネルにあるとシステム全体のパフォーマンス低下に繋がる。この機能を停止するには,管理ツールのグループポリシーから,コンピューターの構成→管理テンプレート→システムのフォルダを辿り,自動再生機能をオフにするを有効にする。このとき,対象のドライブはすべてのドライブに設定する。

また,この設定はレジストリから詳細に設定することも可能だ。ドライブの種類別に設定を行うには,レジストリのキー HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies \ExplorerにNoDriveTypeAutoRunというDWORD値を作成し,以下に示す値に変更する。
設定値(16進数) CD-ROMドライブの自動再生 リムーバブル・ドライブの自動再生
91 する
95 する しない
b1 しない する
b5 しない

また,ドライブごとに個別の設定を行うには,レジストリのキーHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\ExplorerにNoDriveAutoRunというバイナリ値を作成し,適当な値を設定する。この値は,下位ビットから順に各ドライブと対応しており,対応するビットが1のドライブは自動再生が無効化される。

2009年9月5日土曜日

Linux 死机了怎么办

Linux 会死机么?我可以很肯定地说,会!要让 Linux 死机很容易,但难的是在死机以后如何安全的让他摆脱死机状态,本文讲述如何从 Linux 的死机状态中挣脱出来。

Linux 死机有很多种情况,最常见的是系统负载过高导致的。如上次介绍的 fork 炸弹就是这个原理,此外还可以运行内存耗用极大的程序(如虚拟机),也会迅速提升系统负载。由于系统负载过高导致的卡死,一定是解决的越快越好!此时必须记住的是,不能再试图依赖任何图形界面的东西,如 Gnome 的系统监视器(这是我从 Windows 遗留下来的愚昧习惯……),这只会继续加重这种卡死的局面。那怎么办?

不要怕,Linux 最初就是不需要图形界面的,因为有一个很强大的文字界面。按 Ctrl-Alt-F1(F1-F6 一般来说都可以),然后等一会儿,就会切换到 tty,也就是所谓的文字界面。这个时候需要用用户名密码登入。注意,可能键盘输入的速度比较慢,不过应该还是可以忍受的。下面在提示符后面输入 top 回车,这时会看到一张动态的表,上面列出了耗用资源最多的进程。观察它刷新一两次,按q退出,然后输入 kill ,其中的 PID 你可以在 top 里面看到。这个时候应该会快了不少,如果你发现没有成功结束掉,就再输入 kill -KILL ,这次基本上就没问题了。

除了上面这种情况外,一些底层软件的 bug 也可能导致一些奇怪的死机问题。我某位同学近日就因为莫名其妙的死机强制重启把 ext4 的分区给伤了。(最后是 sysreccd 修复了,貌似是分区表部分损坏)据其说,死机是键鼠均无反应。一般来说,系统负载高导致的死机,在可怕键盘也会有反应,有人说如果死机到键盘无响应“负载都无限大了”,亦有人说这可能是 X Server 与驱动配合有问题导致的。不过我们考虑一下遇到这种情况怎么办?

OK,这是今天才学到的方法,叫做 reisub,这个方法可以在各种情况下安全地重启计算机。大家在键盘上找,可以找到一个叫做“Sys Rq”的键,在台机的键盘上通常与 Prt Sc 共键,在笔记本可能在其他位置,如 Delete。以台机为例,要使用这种方法需要按住 Alt-Print(Sys Rq),然后依次按下 reisub 这几个键,按完 b 系统就会重启。

下面解释一下这个方法:其实 Sys Rq 是一种叫做系统请求的东西,按住 Alt-Print 的时候就相当于按住了 Sys Rq 键,这个时候输入的一切都会直接由 Linux 内核来处理,它可以进行许多低级操作。这个时候 reisub 中的每一个字母都是一个独立操作,他们分别表示:

unRaw 将键盘控制从 X Server 那里抢回来
tErminate 给所有进程发送 SIGTERM 信号,让他们自己解决善后
kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭
Sync 将所有数据同步至磁盘
Unmount 将所有分区挂载为只读模式
reBoot 重启

这6个字母的顺序是不可以记错的。那怎么记呢?这里提供一个个人认为比较好的方法:单词 busier(busy 的比较级,更忙)倒过来就是了。

基本上就这样了,Linux 的死机本来就不多见,现在见了也可以安全解决,多好~