IT関連

HDD,SSDのパフォーマンス測定

先日SSDをから発売されたSSDを購入したので今までのHDD、SSDの速度測定結果をまとめる。

以下、マザボ等の構成は以下のとおり。

 

CPU:Core i5-3570K 3.4GH’z

メモリ:CFD W3U1600HQ-4G [DDR3 PC3-12800 4GB 2枚組]×2。計16GB

マザーボード:ASUS P8H77-V

 

パターン1.HDD 2台でRAID0

 シーゲート ST3500418AS 500GB×2台

 RAIDのブロックサイズ128KB

2

 

パターン2.SSD 1台。RAIDなし

  INTEL 330 Series SSDSC2CT120A3K5

  RAIDのブロックサイズ128KB

1

 もう型落ちだし、あまり流通もないようだからAmazonでも高いな。

 

パターン3.SSD 2台。RAID0

  Samsung SSD 840 EVO 120GB

   RAIDのブロックサイズ32KB

インテル® ラピッド・ストレージ・テクノロジー(IntelRST)を使えばキャッシュを使用する設定ができ、

早くなるとのことなので3パターン試した。

RSTを入れてキャッシュを有効にすると4kのランダムライトがかなり高速になるようだ。

全体的に遅くなっている気がするが、ランダムが早いほうがよさそうなのでRSTでキャッシュありで使おうかな。

 

①RSTのソフトインストールなし image002

②RSTのソフトインストール後。キャッシュ未設定

image004

 

③RSTのソフトインストール、キャッシュをライトバックモードで設定後

image006

 

RSTの設定

image008

最近出た製品だし、Amazonでも在庫あり。安い!!!

 

 

SubVersionの構築

ソース管理としてSubversionをCentOS5.5にインストールしたので
その時の手順を以下に記載します。
Subversionにはapache経由でhttp,httpsで接続する方法と
subversionにもともとあるsvnserve経由で接続する方法があるが、
今回は簡単なsvnserve経由での構築を行った。

1.subversionのインストール
 yum -y install subversion

2.subversionのリポジトリ(データの保存先)を作成
 svnadmin create /var/subversion
  ※企業などでは通常リポジトリ用のルートディレクトリを作成後、その中に
   案件ごとにリポジトリを分けます。
   自宅では複数のリポジトリは不要なので1つだけ作成しました。

3.設定ファイルの編集
 vi /var/subversion/conf/svnserve.conf
 以下の三行に変更
  anon-access = none
  auth-access = write
  password-db = passwd
 ※パスワードでの認証は必須で、パスワード認証をしないと
  読み込みも書き込みもできない。

4.パスワードファイルの編集
 vi /var/subversion/conf/passwd
 最終行に以下のようにユーザーを追加
 hiro = hogepass

5.xinetdのインストール
 CentOS5.5のデフォルトのオプションだとxinetdがインストールされないため、
 yumでインストールしておく。

 yum -y install xinetd

6.自動起動に設定。inet経由で起動させる。
 サービスの登録を行う。
 vi /etc/services
 下記2行が記述されているか確認。もしなければ追記する。
 svn 3690/tcp # Subversion
 svn 3690/udp # Subversion

7.起動ファイルの作成
 vi /etc/xinetd.d/svn
 以下のように記述する。

 service svn
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/bin/svnserve
server_args = -i -r /home/subversion
}

8.自動起動するようにサービス設定
 /sbin/chkconfig –add svn

9.xinetを起動
 /etc/rc.d/init.d/xinetd start

その後OSを再起動して正常にsubversionに接続できればOK!!!
完了~~~

RD Tabs

○ソフト名
RD Tabs(リモートデスクトップ支援)

○画面イメージ

○ソフト説明
複数のリモートデスクトップ接続をタブで切り替えられるソフトです。
複数のWindowsサーバー等を管理されている方にはお勧めです。
お気に入りとして接続先も登録できるのでとても便利です。

○URL
http://www.avianwaves.com/tech/tools/rdtabs/

biffpopのインストール

自宅ではMyDNSを使用してダイナミックDNSを使っているため、
定期的に自宅のグローバルIPアドレスを通知する必要がある。
MyDNSではメール受信処理を自分のアカウントに行えば、
それでグローバルIPアドレスを更新してくれるため、今回は
メール受信を行ってくれる「biffpop」をインストールした。

1.biffpopをダウンロード

[root@developServer ~]# wget http://www.nakata-jp.org/computer/freesoft/biffpop.tgz
2.ダウンロードしたbiffpopを解凍

[root@developServer ~]#tar xvzf biffpop.tgz

3.biffpopをインストール

[root@developServer ~]# cd biffpop/src/

[root@developServer src]# make
cc -O3 -DIPv6 -DKILLLIST -DUSE_SSL  -c -Wall biffpop.c -o biffpop.o
biffpop.c:35 から include されたファイル中:
biffpop.h:17:1: 警告: “TRUE” が再定義されました
/usr/include/krb5.h:7 から include されたファイル中,
/usr/include/openssl/kssl.h:72 から,
/usr/include/openssl/ssl.h:191 から,
biffpop.c:24 から:
/usr/include/krb5/krb5.h:184:1: 警告: ここが以前の宣言がある位置です
cc -O3 -DIPv6 -DKILLLIST -DUSE_SSL  -c -Wall Pop3Client.c -o Pop3Client.o
cc -O3 -DIPv6 -DKILLLIST -DUSE_SSL  -c -Wall ApopString.c -o ApopString.o
cc -O3 -DIPv6 -DKILLLIST -DUSE_SSL  -c -Wall md5c.c -o md5c.o
cc -O3 -DIPv6 -DKILLLIST -DUSE_SSL  -o biffpop biffpop.o Pop3Client.o ApopString.o md5c.o  -lssl

※もしmakeコマンドでエラーが出るならコンパイラが必要かもしれません。

以下のコマンドでコンパイラをインストールしてください。

yum -y install gcc

yum -y install gcc-c++

[root@developServer src]# cp biffpop /usr/bin/

[root@developServer ~]# rm -rf biffpop
[root@developServer ~]# rm -rf biffpop.tgz

4.biffpopの設定ファイルの作成

一度biffpopコマンドを実行すると、root直下に.biffpoprcという設定ファイルが出力されます。

[root@developServer ~]# biffpop
-Config file does not exist : /root/.biffpoprc
+Trying to create new config file.
+New config file created : /root/.biffpoprc

  • ~/.biffpoprc must be configured before running biffpop.
    [root@developServer ~]#

5.設定ファイルの更新

vi .biffpoprc

Replace all < > with appropriate data

#
start          HIROROOM
popserver       メールサーバー名
port            110     # connection port
portv6          110     # connection port for IPv6
username        アカウント名
password        パスワード
mailcheckdelay  600     # default mail check time in seconds
viewallmessages 0       # 0 Shows both unread & total messages
inhibitAPOP     0       # 0 can use APOP
#                        and 1 never use APOP
end

6.メール受信テスト

[root@developServer ~]# biffpop
HIROROOM      mesg : unread 0 / total 0

※こんな感じで表示されればOK

7.biffpopの実行&ログ取得用バッチの作成

[root@developServer biffpop]# mkdir biffpop

[root@developServer biffpop]# cd biffpop/

[root@developServer biffpop]# vi  biffpopExec.sh

#!/bin/sh
#

メールチェックし、DNS更新

#
dateTime=date '+%Y%m%d%H%M%S'
HOME=/root

#

End configuration section

#
export LANG=ja_JP.UTF-8

echo “” >> /root/biffpop/biffpop.log
echo ${dateTime} >> /root/biffpop/biffpop.log
/usr/bin/biffpop >> /root/biffpop/biffpop.log 2>&1

8.CRONで定期的にバッチを実行させる

[root@developServer ~]# vi /etc/crontab

下記の1文を最終行に追加し、30分ごとにチェックするようにする

*/30 * * * * root /root/biffpop/biffpopExec.sh

9.30分ごとにログが出力され、ちゃんとメール受信できているか確認

[root@developServer ~]# less biffpop/biffpop.log

20101103180625
HIROROOM        mesg : unread 0 / total 0

Oracleのパフォーマンス障害についてのメモ

Oracle9iの頃はあんまり無かったが、10gになってから
パフォーマンスに関する障害がよく起こる。
その際の原因と対応策についてメモしとく。

##あくまで経験上の話であり、絶対正しい分けではないので注意!

○現象
特定のSQL実行時にCPUが100%に張り付き、
処理が完了しない。
##SQL自体は正常時には数秒で返ってくる程度

○原因
実行計画の不備と思われる。
主にCPUに負荷のかかる実行計画で実行され、
速度遅延を起こしている。
根本原因は統計情報の不足。

○対応策
案としては下記の2つが上げられる。

①使用するテーブルをアナライズ
Oracle10gではWeb板のEnterpriseManager(以後EMとする)で統計情報の取得が
実行できるのでそれを使用すると楽かも。
あと10gからDBMS_STATS.GATHER_SCHEMA_STATS等のオプションの
デフォルト値が変わり、デフォルトではno_invalidate(実行計画の再生成の有無)が
oracle任せになっているので注意。
アナライズを行っても実行計画が変わらない可能性があるのでFalseにすること。
##no_invalidateオプションはEMではカーソルの無効化という名前になっています。

なおOracle10gではデフォルトでアナライズを行うジョブが登録されているが、
統計情報が失効したオブジェクトのみ、カーソルの無効化もoracle任せになっている。
理論的には統計情報が失効したオブジェクトのアナライズのみでも問題なさそうだが
常に最適な実行計画をoracleが判断してくれることを考えると独自で
アナライズジョブを作成し、全てのオブジェクトに対し即カーソルの無効化をさせるように
設定したほうがよいと思われる。

②SQLチューニング・アドバイザ
oracle10gからSQLチューニング・アドバイザなるものがある。
簡単に説明すると障害の発生したSQLを分析し、こうしたら早くなるよ~っと
アドバイスしてくれる機能である。
今回はそのアドバイスの中に出てくる(出てこない場合もある)実行計画の変更を
利用する。出てきた実行計画を「実装」させることにより、そのSQLのみ実装した
実行計画で実行されるようになる。
上記①だと場合によっては長時間かかることがあり、もし運用での切羽詰った状況では
アナライズできない場合もある。
それに比べ②は時間もかかっても数分なので助かる。

実行の仕方はEMからアラート等に表示されている特定の遅いSQLをクリックし、
「SQLチューニング・アドバイザのスケジュール」等で実行する。
その後診断結果が出るのでその中にある統計情報?を実装させてやればよい。