Posts Tagged ‘linux’

    はてなブックマーク - NIFTY Cloudのベンチマークをいろいろ比較
    このエントリーをはてなブックマークに追加

    Fusic 平田です。

    先日のPHP Matsuriで弊社社員がNIFTY Cloud無料利用券を持ち帰ってきました
    というわけで、ベンチマーク取っていろいろ比較。

    各プランの比較

    mini/small(1GB Mem)/medium(2GB Mem)/large(4GB Mem)でそれぞれベンチマークを取ってみました。
    UnixBench 5.1.2を使用して、

    # yum -y install gcc
    # wget http://byte-unixbench.googlecode.com/files/unixbench-5.1.2.tar.gz
    # tar zxf unixbench-5.1.2.tar.gz
    # cd unixbench-5.1.2
    # vim Makefile
    ※ GRAPHIC_TESTSとGL_LIBSをコメントアウト
    # make
    # ./Run

    ってな感じで取ってます。

    で、Index Scoreだけを書くとこんな結果になりました。
    mini 1CPU: 665.4
    small 1CPU: 1875.8
    medium 1CPU: 1844.8
    large 1CPU: 1720.5
    medium 2CPU: 2380.3
    large 2CPU: 3672.6
    グラフにするとこんな感じ(クリックで拡大)。

    1CPUの場合、small以上だとだいたい同じ結果になりました。
    スペック変えた分だけ素直に出てるな、といった印象1 です。

    手元との比較(仮想マシン同士)

    2vCPU/2GBメモリ同士の比較ということで、以前手元で組んだ仮想環境と比較します。
    比較対象は
    1. VMWare ESXi
    2. KVM on Redhat 5.4(qcow2)2
    で設定をいじらずに組んだ結果との比較です。
    Index Scoreがそれぞれ
    VMWare 1CPU: 838.0
    KVM 1CPU: 700.0
    medium 1CPU: 1844.8
    VMWare 2CPU: 1299.6
    KVM 2CPU: 1285.6
    medium 2CPU: 2380.3
    で、グラフだとこんな感じ(クリックで拡大)。


    載せてるマシンの性能差だったり設定差だったりするんでしょうが、スコア差がかなり大きいので驚きました。

    手元との比較(実機と比較)

    検証機(この辺でも使っているPowerEdge T105)が4CPU/4GBメモリだなと思い、これもlargeと比較してみました。
    # とっさに思いついたため、OSがUbuntu 10.04だったりします。


    これまた思った以上に差をつけられました。

    おまけ:さくらVPSと並べてみる

    さくらインターネットの田中社長がさくらVPSのunixbench結果を公開されていたので、これとも比較してみました。
    互いのサービス提供のスタイルから違うので一概に比較できるものでもないんですが、まあ参考程度にってことでとりあえずmini/smallと並べてみることに。
    ちなみにさくらのIndex Scoreは
    1CPU: 1157.7
    4CPU: 1540.6
    となってます。これまた優秀なスコア。

    まとめ

    NIFTY Cloudのスコアはさすがに優秀ですね。
    VPSじゃ足りない、なんて時には選択肢の一つとして十分ありなのかなーと思いました。
    構成もある程度柔軟にできますし。
    コントロールパネルも、特に使いにくい箇所はなかったです。

    miniより下があればもっと手軽に使えるのになーといった個人的な希望もありますが、まあそこは棲み分けみたいなものかなとも思っています。

    CM

    株式会社Fusicでは、エンジニアを積極的に募集中です。
    気が付いたら社員が賞を取ってきたり無料サービス券を獲得してくれたりする(こともある)Fusicで働いてみたい方は、こちらからエントリーをお願いします。

    1. Pipe-based Context Switchingの値がなぜかCPU数に反比例してますが。。。 []
    2. qcow2よりLVM割り当てたほうが良い結果出せていましたね。。。 []
      はてなブックマーク - LinuxでUSB外付けHDDを追加 – USBハブ使って倍プッシュ編
      このエントリーをはてなブックマークに追加

      Fusic 平田です。
      とあるお客様のところにLinuxのサーバを納入しているのですが、今回はそのお話を。
      # 倍プッシュ編しかありませんので、そこはご容赦ください。

      このサーバ、普段はファイルサーバとして活用しているものです。
      で、今回別途USBの外付けHDDを2台追加することになりました。
      用途はSambaでアクセスできればいいよーだったのですが、問題がひとつ。
      他にも外付けHDDなどなど挿したりしてて、USBポートに余裕がないと。

      で、USBハブあるよーとのことなので挿してみました。
      さっくり動いてmountできたのでおー動く、と思ったのもつかの間。
      数分たったりUSBハブに他の機器を挿したりした瞬間に動かなくなりました。
      /var/log/messagesを見ると、以下のIO Errorがずらり。

      scsi 9:0:0:0 rejecting I/O to dead device

      これを解消すべく、以下の手順でいろいろやってみました。

      0. 前提

      サーバマシン: Linux(CentOS 5.3)の2Uサーバ
      元からあったUSB外付けHDD: 1台(IO-DATA)
      今回増やすUSB外付けHDD: 2台(IO-DATA)
      問題: USBポートが既にいっぱいいっぱい
      目標: 正常に動かす
      目標2: さらに増やす時に手間がかからないようにする

      1. /dev/***の部分を各HDDで固定する

      現象を見ていると、/dev/sd*の部分がころころ変わるようで。
      と言うか/dev/sd*の部分はudevで勝手に割り当てるので、再起動時なんかに変わってしまう可能性が大。
      これをまずは固定しようということでいろいろ調べたところ、↓を発見。
      fredericiana.com/2006/03/15/writing-udev-rules-short-notes/
      要はudevのruleを作成して、デバイスファイルを固定しようってことです。
      というわけでudevルールの書き方を読んでみると、

      > ユーザ指定のルールは、基本の/devレイアウトを作成するudevの初期設定を、事実上無効にしてしまいます。したがって、ユーザが記述するルールには、実用的である初期設定の名前とユーザ指定の名前両方を得るために、devfs形式の名前やシンボリックリンクも指定することをお勧めします。

      とあったので、/etc/udev/rules.d/98-local.rulesとして以下の内容のファイルを作成。

      BUS=="usb", KERNEL=="sd*", SYSFS{serial}="0010100740AABBCC", NAME="%k", SYMLINK="usbhda\n"
      BUS=="usb", KERNEL=="sd*", SYSFS{serial}="0010100740DDEEFF", NAME="%k", SYMLINK="usbhdb\n"
      BUS=="usb", KERNEL=="sd*", SYSFS{serial}="0010100740ABCDEF", NAME="%k", SYMLINK="usbhdc\n"

      # SYMLINKの値はこちらで決めていいので、”usbhd/****”とかにして別途まとめる形でもいいです。
      serialの調べ方ですが、1つずつ挿して/dev/sdbなりで認識されているのを確認した後に

      udevinfo -a -p $(udevinfo -q path -n /dev/sdb)

      と実行すると

      # udevinfo -a -p $(udevinfo -q path -n /dev/sdb)
       
      Udevinfo starts with the device specified by the devpath and then
      walks up the chain of parent devices. It prints for every device
      found, all possible attributes in the udev rules key format.
      A rule to match, can be composed by the attributes of the device
      and the attributes from one single parent device.
       
        looking at device '/block/sdb':
          KERNEL=="sdb"
          SUBSYSTEM=="block"
      ----- (中略) -----
        looking at parent device '/devices/pci0000:00/0000:00:03.1/usb3/3-1/3-1.4':
          ID=="3-1.4"
          BUS=="usb"
          DRIVER=="usb"
          SYSFS{configuration}==""
          SYSFS{serial}=="0010100740AABBCC"
      ----- (後略) -----

      てな感じでずらずら出てくる中から読み取れます。

      ruleを保存した後に再度挿すと、こんな感じになります。

      # ls -l /dev/usbhd*
      lrwxrwxrwx 1 root root 3  8月 20 17:57 /dev/usbhda -> sdb
      lrwxrwxrwx 1 root root 4  8月 20 17:57 /dev/usbhda1 -> sdb1

      複数台挿して/dev/sd*の順序がずれても、

      # ls -l /dev/usbhd*
      lrwxrwxrwx 1 root root 3  8月 20 17:57 /dev/usbhda -> sdb
      lrwxrwxrwx 1 root root 4  8月 20 17:57 /dev/usbhda1 -> sdb1
      lrwxrwxrwx 1 root root 3  8月 20 18:06 /dev/usbhdb -> sdd
      lrwxrwxrwx 1 root root 4  8月 20 18:06 /dev/usbhdb1 -> sdd1
      lrwxrwxrwx 1 root root 3  8月 20 18:05 /dev/usbhdc -> sdc
      lrwxrwxrwx 1 root root 4  8月 20 18:05 /dev/usbhdc1 -> sdc1

      といった感じできちんとアクセスできます。

      2. USBハブを変える

      使用したハブがそこそこ古いものだったので、外付けHDDを複数台挿すと途端に動かなくなります。
      デバイスファイルの問題は解決しているので、あとは単純にUSBハブの供給電流とかの問題だろうなと。
      # あとusb2.0に対応してなさそうだな、とか。
      # 型番を必死に調べたのですが、外観以外の情報がないので絞り込めませんでした。。。
      というわけで今回使用したのはこちら。
      ELECOM U2H-GM002BK
      PS3用じゃないか!とツッコミをいただいたりもしたのですが。
      > セルフパワー時/7ポート合計3500mA以内
      が非常に強力なので、これにしました。
      # 4ポートのELECOM U2H-TAP3420Sもあったのですが、口に余裕があったほうが困らないので今回は却下。
      # 7ポートのほうはマグネットが付いてたりするので、そういうの困るなって場合は後者がいいと思われます。

      というわけで設置、USBハブ電源スイッチオン、USB外付けHDDをざくざく挿入。
      きっちり稼働して万々歳です。
      以降定期的にちょこちょこ覗いてますが、特に問題も発生していないようです。

      同様の事象で困る例は非常に少ないと思いますが、備忘録がてらということでひとつ。
      何か後日談なんかが出てきた場合は、またこちらで紹介させていただきます。
      まあ後日談=十中八九トラブルなので、なるべく書かなくて済むことを祈りますが。。。