2015年1月6日火曜日
modsecurityのIISプラグインがあるという話
Apacheで使うことがあるModSecurityがIISのExtensinoで提供されている。
今度試してみよう。
http://blogs.technet.com/b/srd/archive/2012/07/26/announcing-the-availability-of-modsecurity-extension-for-iis.aspx
http://sourceforge.net/projects/mod-security/
2014年6月18日水曜日
tips:nfsの調査!
NFS server(Windows2008R2) + NFS Client(CentOS6.4)にてデバッグをおこなったので、その時の備忘録。
調査1.NFS Client側で統計情報取得
# nfsstat -c
Client rpc stats:
calls retrans authrefrsh
259 0 265
Client nfs v3:
null getattr setattr lookup access readlink
0 0% 118 46% 5 1% 5 1% 101 39% 0 0%
read write create mkdir symlink mknod
0 0% 0 0% 4 1% 2 0% 0 0% 0 0%
remove rmdir rename link readdir readdirplus
0 0% 0 0% 0 0% 0 0% 0 0% 4 1%
fsstat fsinfo pathconf commit
0 0% 10 3% 5 1% 0 0%
アクセス種別に応じた回数や比率が出力される。
調査2.NFS Client側でtcpdump
調査3.NFS Clientのデバッグ
# rpcdebug -m nfs -s vfs
# tail -f /var/log/messages
Jun 17 16:07:34 localhost kernel: NFS: permission(0:14/981489865), mask=0x1, res=0
Jun 17 16:07:34 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:07:34 localhost kernel: NFS: permission(0:14/981489865), mask=0x1, res=0
Jun 17 16:07:34 localhost kernel: NFS: permission(0:14/981489865), mask=0x3, res=0
Jun 17 16:07:34 localhost kernel: NFS: create(0:14/981489865), test ※touch test(create)
Jun 17 16:07:34 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x1feff)
Jun 17 16:07:34 localhost kernel: NFS: nfs_fhget(0:14/1409289744 ct=1)
Jun 17 16:07:34 localhost kernel: NFS: permission(0:14/1409289744), mask=0x0, res=0
Jun 17 16:07:34 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x1feff)
Jun 17 16:07:34 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x7e7f)
Jun 17 16:07:34 localhost kernel: NFS: dentry_delete(/test, 8)
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: permission(0:14/981489865), mask=0x1, res=0
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: permission(0:14/981489865), mask=0x1, res=0
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x7e7f) ※touch test(modify)
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: permission(0:14/1409289744), mask=0x22, res=0
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x1feff)
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: dentry_delete(/test, 8)
# find -inum 1409289744
./test
と対象のファイル名を調べることができる。
調査4.NFS Serverのネットワークパケット取得(NetworkMonitor)
調査1.NFS Client側で統計情報取得
# nfsstat -c
Client rpc stats:
calls retrans authrefrsh
259 0 265
Client nfs v3:
null getattr setattr lookup access readlink
0 0% 118 46% 5 1% 5 1% 101 39% 0 0%
read write create mkdir symlink mknod
0 0% 0 0% 4 1% 2 0% 0 0% 0 0%
remove rmdir rename link readdir readdirplus
0 0% 0 0% 0 0% 0 0% 0 0% 4 1%
fsstat fsinfo pathconf commit
0 0% 10 3% 5 1% 0 0%
アクセス種別に応じた回数や比率が出力される。
調査2.NFS Client側でtcpdump
# tcpdump host [nfs server ip]
# rpcdebug -m nfs -s vfs
# tail -f /var/log/messages
(NFS Client)# touch test
Jun 17 16:07:34 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:07:34 localhost kernel: NFS: permission(0:14/981489865), mask=0x1, res=0
Jun 17 16:07:34 localhost kernel: NFS: permission(0:14/981489865), mask=0x3, res=0
Jun 17 16:07:34 localhost kernel: NFS: create(0:14/981489865), test ※touch test(create)
Jun 17 16:07:34 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x1feff)
Jun 17 16:07:34 localhost kernel: NFS: nfs_fhget(0:14/1409289744 ct=1)
Jun 17 16:07:34 localhost kernel: NFS: permission(0:14/1409289744), mask=0x0, res=0
Jun 17 16:07:34 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x1feff)
Jun 17 16:07:34 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x7e7f)
Jun 17 16:07:34 localhost kernel: NFS: dentry_delete(/test, 8)
(NFS Client)# touch test
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: permission(0:14/981489865), mask=0x1, res=0
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: permission(0:14/981489865), mask=0x1, res=0
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x7e7f) ※touch test(modify)
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: permission(0:14/1409289744), mask=0x22, res=0
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x1feff)
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x7e7f)
Jun 17 16:08:38 localhost kernel: NFS: dentry_delete(/test, 8)
(NFS Client)# rm test
Jun 17 16:11:10 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:11:10 localhost kernel: NFS: permission(0:14/981489865), mask=0x1, res=0
Jun 17 16:11:10 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:11:10 localhost kernel: NFS: permission(0:14/981489865), mask=0x1, res=0
Jun 17 16:11:10 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x7e7f)
Jun 17 16:11:10 localhost kernel: NFS: permission(0:14/981489865), mask=0x3, res=0
Jun 17 16:11:10 localhost kernel: NFS: unlink(0:14/981489865, test)
Jun 17 16:11:10 localhost kernel: NFS: safe_remove(/test) ※rm test
Jun 17 16:11:10 localhost kernel: NFS: nfs_update_inode(0:14/981489865 ct=2 info=0x1feff)
Jun 17 16:11:10 localhost kernel: NFS: dentry_delete(/test, 18)
上記のようにログが残る。ちなみに
Jun 17 16:08:38 localhost kernel: NFS: nfs_update_inode(0:14/1409289744 ct=1 info=0x7e7f)
ここに記載されている1409289744 は、inode番号なので、# find -inum 1409289744
./test
と対象のファイル名を調べることができる。
調査4.NFS Serverのネットワークパケット取得(NetworkMonitor)
Tips:Windowsのネットワークあたりのトピックス
Windowsネットワーク周りの備忘録
・ネットワークパケットを取得する
Microsoft標準だと、NetworkMonitor3.4などがある。GUIでもCUI (nmcap.exe)でも取得可能。
コマンドラインは以下のような感じ。
>nmcap /network * /capture /StartWhen /Time 00:00 6/1/2014 /StopWhen /Time 18:00 6/1/2014 /file .\test1.cap:100M /CaptureProcesses
詳しくはnmcap /helpや/examleで見れる。開始(/StartWhen)・終了(/StopWhen)の時間が指定できたり、
取得しているOS上のプロセスとの紐づけ(/CaptureProcesses)ができるので、ちょっと便利そう。
wiresharkを使って取得することもできる。GUIでもCUI でも。コマンドラインは以下のような感じ。
>tshark -b filesize:5000 -b files:1000 -w C:\temp\test
今のところパケット取得自体であれば、MS純正との差異は思いつかない。プロセスとの紐付けなどができる点
では、NetworkMonitorなのかな?
・WindowsのTCPポートの上限数の変更
Windows2003までは、ポートはデフォルトだと、1025~5000となっている。Windows2008以降では49152~65535が
既定の動的割り当てポートの範囲となっている。
>netsh int <ipv4|ipv6> show dynamicport <tcp|udp>
・Windows2008 R2の複数IP割当時のPrimaryIP(OutBoundの時のデフォルトのソースIP)
Windows2008(R2なし)までは、複数IPがあった場合でも、割り当て欄の一番上のIPがPrimaryIPとなった。
Windows2008 R2では1枚のNICに複数IPをアサインした場合、IPの中で一番小さいIPアドレスがPrimaryIPとなる。
そのためFirewallのなど通信時にソースIP制限をかけている環境では、あとつけでIPを追加する場合、IP次第では
ソースIPが変わってしまうため注意が必要(仕様らしいが、メリットがあるのかな?改悪な気がする。)
・TCP Ack Frequency
TCP遅延ACKの頻度を指定する。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{Interface GUID}*
・TimeWaitの時間変更
セッションをたくさん張るようなサーバーの場合、TCPセッションがたくさん残ってしまい、ポートを消費してしまう
ことがあるので、その時のチューニングの1つとして、TimeWaitを短くする。レジストリを変更する。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
本来Time Waitは、通信相手に正常に終了のパケットが届いたと思われる十分な時間が経過するまでの間、同じ
プロトコル、発信元 IP アドレス、ポート、宛先 IP アドレス、ポートが接続に使用されないようにするための時間。
あるいは再利用のための待ち時間。
RFC 793 では、ソケット ペアの再使用禁止時間の長さを 2 MSL (セグメントの最大有効期間の 2 倍) または
4 分と規定している。時間を短くする場合は、このあたりは認識しておかないと。
※ちなみにPort数(49152~65535)÷TcpTimedWaitDelayが1秒あたりの最大セッション数になりますね。
・IPv6の無効化
ネットワークのアダプタでIPv6を無効化するだけ。
・SNP(Scalable Networking Pack)の無効化
ネットワーク性能が出ないことがある時に、無効化してみる。設定の確認は
>netsh int tcp show global
赤枠のところがenabledに。これを無効化するには以下を実施
>netsh int tcp set global chimney=disabled
>netsh int tcp set global rss=disabled
>netsh int tcp set global netdma=disabled
再度確認してみる。
>netsh int tcp show global
・共有フォルダのアクセスが遅い、できない場合はLanManagerの認証レベルを変更してみるといいらしい。設定は、
「ローカルセキュリティポリシー」-「ローカルポリシー」-「セキュリティオプション」-「ネットワークセキュリティ:LAN Manager認証レベル」の値を、「NTLM応答のみ送信する」に変更。
・ネットワークスロットルを無効にする
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Multimedia\SystemProfile\
NetworkThrottlingIndex
この値をFFFFFFFFにする
・オフロードの無効化
オフロードは、ネットワーク処理の一部をCPUではなく、NICなどに任せ(オフロード)、効率を上げる仕組み。ただしこれがうまく動作しないケースもあるみたいで、ネットワークが遅い時は、オフロード機能の無効化を試す。
NICアダプタ単位で設定を変えるには、NICアダプタの構成情報から変更する
上記のOffloadとなっている項目が対象。
またHyper-V環境上の仮想OSでも、かなり性能劣化を及ぼすことがあるみたいで、オフロードの無効化が有効になるかもしれない。
・共有フォルダのアクセスでキャッシュの無効化
共有フォルダのプロトコルSMB(ServerMessageBlock)の仕様で、キャッシュに関する仕様が問題になることがある(主にサーバー環境で)。
Windows7,windows2008からの機能で、ネットワークの自動チューニング機能がある。ネットワークの性能を改善したい場合、この設定を変更することも検討する。
>netsh interface tcp set global autotuninglevel=xxx
xxの取りうる値は以下の通り。
normal:デフォルト
disabled:自動チューニング無効
highlyrestricted:デフォルトより大きく(チョッと?)
restricted:デフォルトより拡大(一部で制限あり)
experimental:restrictedの制限対応
disabled: uses a fixed value for the tcp receive window. Limits it to 64KB (limited at 65535).
highlyrestricted: allows the receive window to grow beyond its default value, very conservatively
restricted: somewhat restricted growth of the tcp receive window beyond its default value
normal: default value, allows the receive window to grow to accommodate most conditions
experimental: allows the receive window to grow to accommodate extreme scenarios (not recommended as it can degrade performance in common scenarios; only intended for research purposes. It enables RWIN values of over 16 MB)
MTUを変更して、有効にかどうかを確認するには
>ping [ホスト] -f -l [サイズ]
で返ってくるかどうか?で確認する。
・ネットワークパケットを取得する
Microsoft標準だと、NetworkMonitor3.4などがある。GUIでもCUI (nmcap.exe)でも取得可能。
コマンドラインは以下のような感じ。
>nmcap /network * /capture /StartWhen /Time 00:00 6/1/2014 /StopWhen /Time 18:00 6/1/2014 /file .\test1.cap:100M /CaptureProcesses
詳しくはnmcap /helpや/examleで見れる。開始(/StartWhen)・終了(/StopWhen)の時間が指定できたり、
取得しているOS上のプロセスとの紐づけ(/CaptureProcesses)ができるので、ちょっと便利そう。
wiresharkを使って取得することもできる。GUIでもCUI でも。コマンドラインは以下のような感じ。
>tshark -b filesize:5000 -b files:1000 -w C:\temp\test
今のところパケット取得自体であれば、MS純正との差異は思いつかない。プロセスとの紐付けなどができる点
では、NetworkMonitorなのかな?
・WindowsのTCPポートの上限数の変更
Windows2003までは、ポートはデフォルトだと、1025~5000となっている。Windows2008以降では49152~65535が
既定の動的割り当てポートの範囲となっている。
>netsh int <ipv4|ipv6> show dynamicport <tcp|udp>
これで現在のポート範囲を表示することができる。変更もコマンドラインできる。
>netsh int <ipv4|ipv6> set dynamic <tcp|udp> start=数値 num=範囲
Windows2008(R2なし)までは、複数IPがあった場合でも、割り当て欄の一番上のIPがPrimaryIPとなった。
Windows2008 R2では1枚のNICに複数IPをアサインした場合、IPの中で一番小さいIPアドレスがPrimaryIPとなる。
そのためFirewallのなど通信時にソースIP制限をかけている環境では、あとつけでIPを追加する場合、IP次第では
ソースIPが変わってしまうため注意が必要(仕様らしいが、メリットがあるのかな?改悪な気がする。)
・TCP Ack Frequency
TCP遅延ACKの頻度を指定する。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{Interface GUID}*
値の名前:TcpAckFrequency
値:(DWORD) デフォルト2。変更する際は1。
※デフォルトでは、セグメントを2個受信したらACKを返す。1にするとセグメント毎にACKを返す(つまり
TCP遅延ACKを無効化)。
セッションをたくさん張るようなサーバーの場合、TCPセッションがたくさん残ってしまい、ポートを消費してしまう
ことがあるので、その時のチューニングの1つとして、TimeWaitを短くする。レジストリを変更する。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
値の名前:TcpTimedWaitDelay
値:DWORDで秒単位で記載(Windows2008のデフォルトは120秒)。
参考)http://technet.microsoft.com/en-us/library/cc938217.aspx
プロトコル、発信元 IP アドレス、ポート、宛先 IP アドレス、ポートが接続に使用されないようにするための時間。
あるいは再利用のための待ち時間。
RFC 793 では、ソケット ペアの再使用禁止時間の長さを 2 MSL (セグメントの最大有効期間の 2 倍) または
4 分と規定している。時間を短くする場合は、このあたりは認識しておかないと。
※ちなみにPort数(49152~65535)÷TcpTimedWaitDelayが1秒あたりの最大セッション数になりますね。
・IPv6の無効化
ネットワークのアダプタでIPv6を無効化するだけ。
・SNP(Scalable Networking Pack)の無効化
ネットワーク性能が出ないことがある時に、無効化してみる。設定の確認は
>netsh int tcp show global
赤枠のところがenabledに。これを無効化するには以下を実施
>netsh int tcp set global chimney=disabled
>netsh int tcp set global rss=disabled
>netsh int tcp set global netdma=disabled
再度確認してみる。
>netsh int tcp show global
・共有フォルダのアクセスが遅い、できない場合はLanManagerの認証レベルを変更してみるといいらしい。設定は、
「ローカルセキュリティポリシー」-「ローカルポリシー」-「セキュリティオプション」-「ネットワークセキュリティ:LAN Manager認証レベル」の値を、「NTLM応答のみ送信する」に変更。
・ネットワークスロットルを無効にする
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Multimedia\SystemProfile\
NetworkThrottlingIndex
この値をFFFFFFFFにする
・オフロードの無効化
オフロードは、ネットワーク処理の一部をCPUではなく、NICなどに任せ(オフロード)、効率を上げる仕組み。ただしこれがうまく動作しないケースもあるみたいで、ネットワークが遅い時は、オフロード機能の無効化を試す。
NICアダプタ単位で設定を変えるには、NICアダプタの構成情報から変更する
上記のOffloadとなっている項目が対象。
またHyper-V環境上の仮想OSでも、かなり性能劣化を及ぼすことがあるみたいで、オフロードの無効化が有効になるかもしれない。
・共有フォルダのアクセスでキャッシュの無効化
共有フォルダのプロトコルSMB(ServerMessageBlock)の仕様で、キャッシュに関する仕様が問題になることがある(主にサーバー環境で)。
・自動チューニング
Windows7,windows2008からの機能で、ネットワークの自動チューニング機能がある。ネットワークの性能を改善したい場合、この設定を変更することも検討する。
>netsh interface tcp set global autotuninglevel=xxx
xxの取りうる値は以下の通り。
normal:デフォルト
disabled:自動チューニング無効
highlyrestricted:デフォルトより大きく(チョッと?)
restricted:デフォルトより拡大(一部で制限あり)
experimental:restrictedの制限対応
disabled: uses a fixed value for the tcp receive window. Limits it to 64KB (limited at 65535).
highlyrestricted: allows the receive window to grow beyond its default value, very conservatively
restricted: somewhat restricted growth of the tcp receive window beyond its default value
normal: default value, allows the receive window to grow to accommodate most conditions
experimental: allows the receive window to grow to accommodate extreme scenarios (not recommended as it can degrade performance in common scenarios; only intended for research purposes. It enables RWIN values of over 16 MB)
・受信ウィンドウサイズの変更
・MTUの変更
>netsh interface ipv4 set interface "インターフェース名" mtu=xxxx store=persistent
RWIN(Recieve WINdow)の変更
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters」にある「TcpWindowSize」の値を修正することで、設定を変更できた。
・MTUの変更
>netsh interface ipv4 set interface "インターフェース名" mtu=xxxx store=persistent
MTUを変更して、有効にかどうかを確認するには
>ping [ホスト] -f -l [サイズ]
で返ってくるかどうか?で確認する。
2014年6月13日金曜日
Tips:FTPクライアントでのファイルの移動と、WindowsのIIS FTPの仮想ディレクトリ
Windows標準のFTPサーバの環境で、
・ディレクトリ間のデータの移動ができるのか?
・ドライブをまたがって移動ができるか?
ってのを調べて見る機会があたので、メモ。
結論からすると、ケースによるが、移動はできた。ポイントは以下の通り。
・移動というより、RNFRとRFTOコマンドで実装されているみたい。
・FTPクライアントでリモート側(つまりFTPサーバー)のディレクトリがツリーで表示される
ようなものでないと、実際には使いづらい。下位のディレクトリにしか移動ができない。
FFFTPはできなかった(最新版では試してないが)。WinSCPだとツリー表示ができた。
・サーバー上で、FTPの仮想ディレクトリを使って、物理ドライブをまたがるような構成を組ん
だ場合、ドライブをまたがる移動はできない。
という構成を組んでいる時、FTPクライアントでDirAからDirBへのファイルの移動はできるが、
DirAからDirCへの移動はできなかった(エラーになった)。
・ファイルの移動とは異なるトピックスになるが、
上記のような仮想ディレクトリを組んでいる場合、FTPクライアントツールでは、DirA,DirB,DirC
が表示されなかった。ただコマンドベースでアクセスする分にはアクセスができる
(例:cd \DirBとか)。
これはセキュリティ上の仕様だそうだ。でもこれだとつかいづらいので、、対策としては
C:\wwwroot
|
├--- DirB
|
├--- DirC
・ディレクトリ間のデータの移動ができるのか?
・ドライブをまたがって移動ができるか?
ってのを調べて見る機会があたので、メモ。
結論からすると、ケースによるが、移動はできた。ポイントは以下の通り。
・移動というより、RNFRとRFTOコマンドで実装されているみたい。
・FTPクライアントでリモート側(つまりFTPサーバー)のディレクトリがツリーで表示される
ようなものでないと、実際には使いづらい。下位のディレクトリにしか移動ができない。
FFFTPはできなかった(最新版では試してないが)。WinSCPだとツリー表示ができた。
・サーバー上で、FTPの仮想ディレクトリを使って、物理ドライブをまたがるような構成を組ん
だ場合、ドライブをまたがる移動はできない。
という構成を組んでいる時、FTPクライアントでDirAからDirBへのファイルの移動はできるが、
DirAからDirCへの移動はできなかった(エラーになった)。
・ファイルの移動とは異なるトピックスになるが、
上記のような仮想ディレクトリを組んでいる場合、FTPクライアントツールでは、DirA,DirB,DirC
が表示されなかった。ただコマンドベースでアクセスする分にはアクセスができる
(例:cd \DirBとか)。
これはセキュリティ上の仕様だそうだ。でもこれだとつかいづらいので、、対策としては
C:\wwwroot
|
├--- DirA
|
という仮想ディレクトリ名と同名のディレクトリを作成すると、FTPクライアント上でも表示された。
ディレクトリにアクセスをすると、実態のディレクトリではなく 仮想ディレクトリのほうにアクセス
できるようになる。例えば上記のようなディレクトリを作成した場合、
FTP > cd \DirA
とすると、C:\wwwroot\DirAではなく、C:\tempに移動する。
何とも不思議な仕様だ。だったら仮想ディレクトリのプロパティに、見せる・見せないという機能
を持たせればよいのに、、
ちょっと変わった仕様なので書いてみた。
2014年5月31日土曜日
Windows8でカスタマイズ
Windows8を使っていて、何かと使いにくいと思っていたので、いろいろ調べてみたのでTips
・Aero Snapを無効化する
ウィンドウを画面端にDrug&Dropすると、最大表示されたり、配置されたりする機能。それが
Aero Snapというらしい。勝手に最大表示になるし、とても使いづらい。。無効化する
1.[Win]+[U]で、コンピューターの簡易操作センター画面が開く
2.「マウスを使いやすくします」を選択
3.「ウィンドウが画面の端に移動・・」をON・・完了
・使用するCPUコアを限定する
CPUをぶん回すプロセスがいるとき(特にマルチスレッドで)、使用するCPUコアを限定させ
て、影響を出ないようにしたいときの方法。
1.タスクマネージャーを開いて、詳細タブより、該当プロセスを指定して右クリックし、
「関係の設定」を選択する
2.プロセッサの関係の画面が開くので、使用させるCPU以外のチェックを外す・・完了
もう1つはプログラム実行時にCPUを限定させる方法。
コマンドプロンプトで”/AFFINITY”オプションで、関係マスクなるものを指定することで
実現できる
> cmd.exe /c start "タイトル" /AFFINITY 2 "notepad"
ちなみに関係マスクというのは以下のような値らしい
という感じ。立ち上がったプロセスの関係の設定を見ると、、その通りになってる!
・問題ステップ記録ツール
・Aero Snapを無効化する
ウィンドウを画面端にDrug&Dropすると、最大表示されたり、配置されたりする機能。それが
Aero Snapというらしい。勝手に最大表示になるし、とても使いづらい。。無効化する
1.[Win]+[U]で、コンピューターの簡易操作センター画面が開く
2.「マウスを使いやすくします」を選択
3.「ウィンドウが画面の端に移動・・」をON・・完了
・使用するCPUコアを限定する
CPUをぶん回すプロセスがいるとき(特にマルチスレッドで)、使用するCPUコアを限定させ
て、影響を出ないようにしたいときの方法。
1.タスクマネージャーを開いて、詳細タブより、該当プロセスを指定して右クリックし、
「関係の設定」を選択する
2.プロセッサの関係の画面が開くので、使用させるCPU以外のチェックを外す・・完了
もう1つはプログラム実行時にCPUを限定させる方法。
コマンドプロンプトで”/AFFINITY”オプションで、関係マスクなるものを指定することで
実現できる
> cmd.exe /c start "タイトル" /AFFINITY 2 "notepad"
ちなみに関係マスクというのは以下のような値らしい
| 0 | - |
| 1 | CPU 0 |
| 2 | CPU 1 |
| 3 | CPU 0 & 1 |
| 4 | CPU 2 |
| 5 | CPU 0 & 2 |
| 6 | CPU 1 & 2 |
| 7 | CPU 0 & 1 & 2 |
| 8 | CPU 3 |
| 9 | CPU 0 & 3 |
| D | CPU 0 & 2 & 3 |
| F | CPU 0 & 1 & 2 3 |
という感じ。立ち上がったプロセスの関係の設定を見ると、、その通りになってる!
・問題ステップ記録ツール
PCの操作で質問をされたときに操作履歴がわかるので便利(かも)!
1.[Win] + [R]で「ファイル名を指定して実行」を起動して、"psr"を実行。
2.「問題ステップ記録ツール」が起動されたら、「記録の開始」を押して操作すればいいみたい。
3.操作が終了したら、「記録の停止」を押すと、保存のウィンドウが開くので、適当なところに
保存すると、zip形式でファイルができる。
※記録できる画像枚数が25枚に設定されているので、必要であれば変更できる。
・Microsoft Loopback Adapterを追加する
ほしい時の追加方法。
1.[Win] + [R]で「ファイル名を指定して実行」を起動して、"hdwwiz"を実行。
2.「ハードウェアの追加」が起動されたら、以下の内容で進める。
インストール方法:一覧から選択したハードウェアをインストールする(詳細)
共有ハードウェアの種類:ネットワークアダプター
製造元:Microsoft
ネットワークアダプター:Microsoft KM-TEST Loopback Adapter
・Windows8をWifiルーター化してみる
Windows8(7)のSoftAPとVirtualWifiという機能と、無線LANアダプタとがあれば、PCをWifiルーターのように使える。ちょっとしたと時に便利かもと思った。
http://www.infraexpert.com/study/wireless48.html
http://yamanxworld.blogspot.jp/2012/11/windows-8-microsoft-virtual-wifi.html
拡張子からファイルタイプを調べる
>assoc .txt
.txt=txtfile
上記だと、.txtはtxtfileというファイルタイプであることがわかる。次にファイルタイプが関連付けられている、アプリを確認する
>ftype txtfile
txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1
となり、メモ帳(notepad)に関連付けられていることがわかる。
※関連付けを初期化したい場合は、以下のレジストリを削除する。ただし、ファイルタイプが作成されているものだけに限る(ファイルタイプが作成されていないと、リセットできない)
>reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\UserChoice
上記の太文字の箇所が拡張子に該当する。
Windows8の環境では自動で有効になっていましたが、念のため。
>fsutil behavior query DisableDeleteNotify
DisableDeleteNotify = 0
0はTrimが有効になっている状態。もし1になっていたら、
>fsutil behavior set DisableDeleteNotify 0
とすれば、有効化できる。ちなみにSSDとHDDの混在環境も考えられるが、Trimが有効になってもHDDには影響はないとのこと。
2.「問題ステップ記録ツール」が起動されたら、「記録の開始」を押して操作すればいいみたい。
3.操作が終了したら、「記録の停止」を押すと、保存のウィンドウが開くので、適当なところに
保存すると、zip形式でファイルができる。
※記録できる画像枚数が25枚に設定されているので、必要であれば変更できる。
・Microsoft Loopback Adapterを追加する
1.[Win] + [R]で「ファイル名を指定して実行」を起動して、"hdwwiz"を実行。
2.「ハードウェアの追加」が起動されたら、以下の内容で進める。
インストール方法:一覧から選択したハードウェアをインストールする(詳細)
共有ハードウェアの種類:ネットワークアダプター
製造元:Microsoft
ネットワークアダプター:Microsoft KM-TEST Loopback Adapter
・Windows8をWifiルーター化してみる
http://www.infraexpert.com/study/wireless48.html
http://yamanxworld.blogspot.jp/2012/11/windows-8-microsoft-virtual-wifi.html
・拡張子の関連付けをコマンドラインで変更する
拡張子からファイルタイプを調べる
>assoc .txt
.txt=txtfile
上記だと、.txtはtxtfileというファイルタイプであることがわかる。次にファイルタイプが関連付けられている、アプリを確認する
>ftype txtfile
txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1
となり、メモ帳(notepad)に関連付けられていることがわかる。
※関連付けを初期化したい場合は、以下のレジストリを削除する。ただし、ファイルタイプが作成されているものだけに限る(ファイルタイプが作成されていないと、リセットできない)
>reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\UserChoice
上記の太文字の箇所が拡張子に該当する。
・SSDを使っている環境でTrim機能を有効にする
Windows8の環境では自動で有効になっていましたが、念のため。
>fsutil behavior query DisableDeleteNotify
DisableDeleteNotify = 0
0はTrimが有効になっている状態。もし1になっていたら、
>fsutil behavior set DisableDeleteNotify 0
とすれば、有効化できる。ちなみにSSDとHDDの混在環境も考えられるが、Trimが有効になってもHDDには影響はないとのこと。
※OSがどうやってSSDと判断しているか?はほぼ公開されていないらしいですが、SSDが有効な時に確認しておく設定というものがあるらしい。以下参照。
※参考
http://128bit.blog41.fc2.com/blog-entry-356.html
http://d.hatena.ne.jp/Lansen/20091114/1258183348
http://blogs.msdn.com/b/e7jp/archive/2009/05/24/9639779.aspx
・ReadyBoostを使ってシステムキャッシュ領域を増やす(速くなる?)
復元するには
またディスク障害などに備えてイメージバックアップを取るには、Windows8.1からは実行する場所も変わったみたいで、
1.「コントロール パネル」-「システムとセキュリティ」-「ファイル履歴」を実行し、
2.画面左下にある、システムイメージバックアップを選択する。進めると、取得先の選択
画面が出てくる。
3.次に進むと取得対象となるドライブを選択する
4.バックアップ実行。バックアップは2でハードディスクを選択した場合、ドライブ直下に
[Drive]:\WindowsImageBackup\[マシン名]\Backup yyyy-mm-dd xxxx
というフォルダが作成され取得される。
復元するには、
■イメージごと復元
OSのインストールメディアで起動し、「コンピューターを修復する」→「トラブルシューティング」
と進めていくと戻るらしい(試せてない・・)
■ファイルの復元
先のバックアップ先フォルダに、vhdxがあるので、マウントすれば、中身が見えてファイル単位
でのリストが可能となる。
SSDがあったらあまり効果はない(というか使われないみたい)かもしれないけど、USBメモリで
32GBもあるし、有効じゃない?と思ったのですが、、ちょっと調べただけで、USBメモリがそれほど速くないし、弊害(起動時間やOSのもたつきによるデメリットのほうが多い!という意見が多い。
USB 3.0になってもメモリ自体が速くならないとですね(だったらSSDか)。
※参考
http://technet.microsoft.com/ja-jp/windows/ff467971.aspx
・バクアップと復元
簡単なバックアップを取るには、
1.[Win] + [R]で「ファイル名を指定して実行」を起動して、"sysdm.cpl"を実行。
2.「システムの保護」タブで、ドライブを選択し作成!(途中説明を入れたりする)
2.「システムの保護」タブで、ドライブを選択し作成!(途中説明を入れたりする)
1.[Win] + [R]で「ファイル名を指定して実行」を起動して、"rstrui"を実行。
※バックアップの時の「システムの保護」タブからシステムの復元でもOK
2.復元するポイントを選択し、進めるだけ。
※バックアップの時の「システムの保護」タブからシステムの復元でもOK
2.復元するポイントを選択し、進めるだけ。
1.「コントロール パネル」-「システムとセキュリティ」-「ファイル履歴」を実行し、
2.画面左下にある、システムイメージバックアップを選択する。進めると、取得先の選択
画面が出てくる。
3.次に進むと取得対象となるドライブを選択する
4.バックアップ実行。バックアップは2でハードディスクを選択した場合、ドライブ直下に
[Drive]:\WindowsImageBackup\[マシン名]\Backup yyyy-mm-dd xxxx
復元するには、
■イメージごと復元
OSのインストールメディアで起動し、「コンピューターを修復する」→「トラブルシューティング」
と進めていくと戻るらしい(試せてない・・)
■ファイルの復元
先のバックアップ先フォルダに、vhdxがあるので、マウントすれば、中身が見えてファイル単位
でのリストが可能となる。
2014年5月6日火曜日
tips:Windows環境のNTPの確認
ある環境で時刻が1秒ほどずれることがあり、その時の調べ方についてメモ。OSはWindows7系(Windows2008系も一緒かな)。
・IPアドレス(192.168..x)との時刻差分情報を表示する
# w32tm /stripchart /computer:192.168.x.x /period:1
===
C:\Users\user1>w32tm /stripchart /computer:192.168.x.x /period:1
192.168.x.x [192.168.x.x:123] を追跡中。
現在の時刻は 2014/05/06 23:09:38 です。
23:09:38 d:+00.0000000s o:+00.1169166s [ * ]
23:09:39 d:+00.0000000s o:+00.1013165s [ * ]
・時刻同期の設定関連の情報を表示する
# w32tm /query /status
===
C:\Users\user1>w32tm /query /status
閏インジケータ: 0 (警告なし)
階層: 5 (二次参照 - (S)NTP で同期)
精度: -6 (ティックごとに 15.625ms)
ルート遅延: 0.0971375s
ルート分散: 0.1822261s
参照 ID: 0x0xxxxxxx (ソース IP: x.x.x.x)
最終正常同期時刻: 2014/05/06 18:59:17
ソース: ntp.example.com
ポーリング間隔: 15 (32768s)
・IPアドレス(192.168..x)との時刻差分情報を表示する
# w32tm /stripchart /computer:192.168.x.x /period:1
===
C:\Users\user1>w32tm /stripchart /computer:192.168.x.x /period:1
192.168.x.x [192.168.x.x:123] を追跡中。
現在の時刻は 2014/05/06 23:09:38 です。
23:09:38 d:+00.0000000s o:+00.1169166s [ * ]
23:09:39 d:+00.0000000s o:+00.1013165s [ * ]
・時刻同期の設定関連の情報を表示する
# w32tm /query /status
===
C:\Users\user1>w32tm /query /status
閏インジケータ: 0 (警告なし)
階層: 5 (二次参照 - (S)NTP で同期)
精度: -6 (ティックごとに 15.625ms)
ルート遅延: 0.0971375s
ルート分散: 0.1822261s
参照 ID: 0x0xxxxxxx (ソース IP: x.x.x.x)
最終正常同期時刻: 2014/05/06 18:59:17
ソース: ntp.example.com
ポーリング間隔: 15 (32768s)
2013年7月20日土曜日
tips:WindowsでのJumboFrameに関する話
Windows環境でiSCSIをつかっているので、JumboFrameに関する備忘録を記載。
※Windows2003やXPではnetsh interfaceの仕様が変わったようで、上記では実施できません。
試したのはWindows2008です。
■MTUの設定値の確認
# netsh interface ipv4 show interfaces
Idx Met MTU 状態 名前
--- ---------- ---------- ------------ ---------------------------
1 50 4294967295 connected Loopback Pseudo-Interface 1
11 10 1500 connected iscsi1
14 10 1500 connected public
上記は1500になっている例。
※Windows2003やXPではnetsh interfaceの仕様が変わったようで、上記では実施できません。
■MTUの設定
上記のMTUの確認と同じコマンドで、対象NICのIdxを確認する(今回はiscsi1を変更)。
# netsh interface ipv4 set interfaces 11 mtu=9000
再度設定を確認しましょう!
■ネットワーク経路でJumboフレームが通るか?確認
pingでフレームが分割されずに通るか?の確認です。
・Windows2008からの確認
# ping [相手先] -l 8972 -f
-l : パケットサイズ
-f : Set Don't Fragment flag
NGの場合は、、
Packet needs to be fragmented but DF set.
OKの場合は、、
Pinging [相手先] [x.x.x.x] with 8972 bytes of data:
Reply from x.x.x.x: bytes=8972 time<1ms TTL=127
※8972bytesはJumboframeのパケットサイズ9000bytesから、IPヘッダサイズ20bytes+ICMPヘッダサイズ8bytesを引いたもの。
登録:
投稿 (Atom)




