MySQL NET Connectorによる接続型について
接続型と非接続型を共にサポートしている。

Download Connector/Net

.NET 非接続型確認
http://dev.mysql.com/doc/connector-net/en/connector-net-connection-options.html

MySQL Connector/Net Developer Guide
http://downloads.mysql.com/docs/connector-net-en.pdf (P83, P84)

Data Adapter – The Data Adapter is the interface between the Data Set and the database itself. The
Data Adapter is responsible for efficiently managing connections to the database, opening and closing
them as required. The Data Adapter is created by instantiating an object of the MySqlDataAdapter
class. The MySqlDataAdapter object has two main methods: Fill which reads data into the Data
Set, and Update, which writes data from the Data Set to the database.

MySQL Connector/Net Developer Guide
http://dev.mysql.com/doc/connector-net/en/index.html


This is very useful tool form managing Windows Servers.

Core Technologies Consulting, LLC
Software/Services to save you Time and Money

http://www.coretechnologies.com/

Recent Releases
AlwaysUp 8.5 April 20 2013 Autologon…
Service Protector 3.7 March 16 2013 Scheduled restarts…
Service Security Editor January 1 2013 Initial release


Windows7にてLinux環境を利用する為に、XPと同様にCoLinuxをインストールしようと思いましたが、
64bitにはインストール出来ないようでしたので、同じく無償で利用出来るVMWare Playerをインストールしました。

VMware Player
仮想マシンを最も容易に実行する手段
http://www.vmware.com/jp/products/desktop_virtualization/player/overview.html

VMware Player 製品ダウンロード センター

VMware-player-4.0.4-744019.exeの実行とインストール
install

インストールはシンプルで直ぐに終わります。
ディスク容量も必要なので、インストール先だけ予め決めておくと良いかと思います。

OSイメージのISOファイルは以下のCentOSのページからダウンロード
CentOS ISO Image
http://isoredirect.centos.org/centos/6/isos/x86_64/
Index of /pub/linux/centos/6.3/isos/x86_64

ISOイメージをダウンロードし終わったら、仮想システムのインストールを継続します。

ISOファイルの場所を指定
VM

OS
VM

メモリー、パーティションサイズの指定
MEM

基本設定完了と起動イメージ(ISO)の指定してOS設定直前まで完了
基本設定

ISO

イメージから起動してCentOSのインストール開始
インストール

インストール完了
Finish

CentOSをインストールして起動
CentOS

VMWARE TOOLSをCD MOUTしてファイルを取得してインストール。
VMwareTools-8.8.4-743747.tar.gz

[root@CentOS64VM vmware-tools-distrib]# ls -l
合計 244
-rw-r–r–. 1 root root 226388 6月 9 10:59 2012 FILES
lrwxrwxrwx. 1 root root 13 7月 15 21:51 2012 INSTALL -> ./doc/INSTALL
drwxr-xr-x. 2 root root 4096 6月 9 10:59 2012 bin
drwxr-xr-x. 2 root root 4096 6月 9 10:59 2012 doc
drwxr-xr-x. 4 root root 4096 6月 9 10:59 2012 etc
drwxr-xr-x. 2 root root 4096 6月 9 10:59 2012 installer
drwxr-xr-x. 16 root root 4096 6月 9 10:59 2012 lib
lrwxrwxrwx. 1 root root 31 7月 15 21:51 2012 vmware-install.pl -> ./bin/vmware-uninstall-tools.pl
[root@CentOS64VM vmware-tools-distrib]#

NAT設定で利用していたので、Internetコネクションを共有するNICを指定して
Windows7側で設定してあげる。(Colinuxと同様)Windows側とLinux側のセグメントを合わせてあげてから、
/etc/sysconfig/network-scripts/ifcfg-eth0ファイルの設定を変更してあげたら無事に利用する事が出来ました。

DEVICE=”eth0″
BOOTPROTO=”dhcp”
HWADDR=”xx:xx:xx:xx:xx:xx”
NM_CONTROLLED=”yes”
ONBOOT=”on”

参考にさせて頂いたサイト
http://gendosu.jp/?p=57
http://blog.asial.co.jp/691


サーバーを購入したり、ディスク交換や追加した場合に、
単純にI/O性能を測る事が出来るツールを確認。
前回は、Linuxのhdparmを検証しました。

CrystalDiskMark

ダウンロードページ
2012年2月12日[7/2008/Vista/2003/XP/2000, x86/x64, i18n]
http://crystalmark.info/download/index.html#CrystalDiskMark

インストールしないでもベンチマーク出来る方が、
何処でも利用出来て敷居が低いのでポータブル版をダウンロードして利用。

ダウンロードして展開
展開

実行ファイルをクリック(32bit/64bit版)
実行

対象ディスクの選択

ローカルディスクで実行
ローカル

外部SDカードで実行

それぞれのテストは100MBのファイル設定で2回ずつ実行。(Defaultは5回実行)
テストループ回数は多い程、サンプリングデータが増えてより正確なデータを得る
事が出来ると考える。


http-pingは、ICMPの代わりにhttp/sを利用してコンピュータ名や
IPアドレスの変わりにURLを利用してレスポンスを返します。 (IPv6にも対応)

It is similar to the popular ping utility, but works over HTTP/S
instead of ICMP, and with a URL instead of a computer name/IP address.
http-ping supports IPv6 addresses.

Ping any URL or web site with our free command-line utility, http-ping

http-pingをダウンロードしたら,exeをそのままフォルダーに配置して
何もインストールしないでそのまま実行ファイルとして利用出来ます。

http-ping

For each request, http-ping displays:

The HTTP return code (and its brief textual description)
The number of bytes returned by the server (excluding headers)
The time taken to complete the request (i.e. round-trip time)

A summary of all the requests is presented upon completion.


C:\tools\http-ping>http-ping.exe /?

http-ping
=========

Synopsis: Pings a specified URL.

Usage: http-ping [-t] [-n count] [-i interval] [-f file-name] [-s] [-v]
[-q] [-c] [-r] [-w timeout] [-d] [-o data | -of file-name] URL

Where:
URL The URL you wish to check. For example http://www.kiva.org,
http://209.191.122.70, or http://www.yourhost:8080.
Be sure to surround an IPv6 address with square brackets,
for example, http://[2a00:1450:4007:800::1014].

Options:
-t Ping the specified URL until stopped.
To see statistics and continue - type Control-Break;
To stop - type Control-C.
-n count Send 'count' requests. Supercedes -t.
-i interval Wait 'interval' seconds between each request. There is a
1-second wait if this option is not specified.
-f file-name Save responses to file 'file-name'. Please specify the full
path, and use quotes if the file name contains spaces.
-s Silent. Print no output.
-v Verbose. Print detailed output. Supercedes -s.
-q Quick. Perform HTTP HEAD requests instead of GETs. This
will retrieve headers only, and bytes reported wil be 0.
-c Perform a full connection on each request; ignore
keep-alive.
-r Follow HTTP redirects.
-w timeout Wait 'timeout' seconds for a response before timing out.
Specify 0 to avoid timing out.
If not specified, the default timeout is 30 seconds.
-p Use the proxy defined in the Windows Internet settings.
-d Print the date and time of each ping attempt.
-o data Perform HTTP POSTs sending the given data. Please enclose
the data in quotes if it contains spaces.
-of file-name Perform HTTP POSTs sending the contents of file
'file-name'. Please specify the full path, and use quotes
if the file name contains spaces.

Exit code: The percentage of requests that succeed.

Version: 5.0.0.33 (Dec 24 2011)

Examples: > http-ping http://www.yahoo.com
- Pings the yahoo home page 4 times.
> http-ping -t http://localhost:8080
- Repeatedly pings the web server at port 8080 on your
local machine until stopped.

---------------------------------------------------------------------------
This free utility is Copyright 2011, Core Technologies Consulting, LLC.
Find out about this and our other products at our web site:
http://www.CoreTechnologies.com/
---------------------------------------------------------------------------

-rでリダイレクト先のレスポンスを確認。

C:\tools\http-ping>

バッチとの連携
http://www.coretechnologies.com/products/AlwaysUp/alwaysup-sanity-check-web-server.bat
———————————————-

@echo off
REM This batch file is for use with AlwaysUp (http://www.coretechnologies.com/products/AlwaysUp/) or Service Protector (http://www.coretechnologies.com/products/ServiceProtector/)
REM Copyright � 2001-2012 Core Technologies Consulting, LLC. All rights reserved.

REM Ping your web server
REM *** Please change the location of http-ping.exe if necessary and adjust the URL to point to your web server ***
"C:\Program Files\AlwaysUp\http-ping.exe" http://localhost:80

REM http-ping returns the percentage of pings that succeed. With 4 attempts, this can be 0, 25, 50, 75, or 100.
REM Any of the 4 pings succeeds consider it a success ==> return 0 so that AlwaysUp doesn't restart
IF ERRORLEVEL 25 GOTO success
IF ERRORLEVEL 50 GOTO success
IF ERRORLEVEL 75 GOTO success
IF ERRORLEVEL 100 GOTO success

REM Exit code of 0 ==> all failed ==> return 1 to have AlwaysUp restart the application
IF ERRORLEVEL 0 GOTO failure

REM http-ping returned a code < 0 ==> there was some other kind of failure. Don't restart, but have AlwaysUp log the failure ==> return 2
echo http-ping failed!
exit 2

:success
echo Succeeded!
exit 0

:failure
echo Failed!
exit 1

———————————————-

その他のツールも以下のサイトでダウンロード出来ます。
Core Technologies Consulting, LLC


minttyをインストールしてみた。
Windows上でwget, vim, Linuxコマンドが簡単に利用出来て便利かもしれない。

Downloadサイト
http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/

今回は以下のファイルを利用
http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/mingw-get-inst-20120426/

1)DOWNLOADが終わったらセットアップを実行

2) Repository Catalogの選択

Compilerの選択

WEBにアクセスして必要なコンポーネントの自動ダウンロード

SETUP COMPLATED

WINDOWS PATH追加
C:\MinGW\msys\1.0\bin

パッケージのアップデートとMSYSのインストール
$ mingw-get update

$ mingw-get install msys-mintty

Mintty起動用ショートカットの作成とオプション設定
1. 「ショートカット」 C:\MinGW\msys\1.0\bin\mintty.exe /bin/bash –login -i
2. オプション設定

設定とアプリケーションインストール

$ mingw-get update

$ mingw-get upgrade

$ mingw-get install msys-coreutils msys-man msys-tar msys-gzip msys-wget msys-zip msys-unzip msys-vim
$ mingw-get install msys-openssl msys-openssh

インストール後の簡単な確認

パッケージリスト

anywhere@any-place ~/temp20120609
$ mingw-get list | egrep “Package:”
Package: mingw-developer-toolkit Subsystem: msys
Package: mingw32-autoconf Subsystem: mingw32
Package: mingw32-autoconf2.1 Subsystem: mingw32
Package: mingw32-autoconf2.5 Subsystem: mingw32
Package: mingw32-automake Subsystem: mingw32
Package: mingw32-automake1.10 Subsystem: mingw32
Package: mingw32-automake1.11 Subsystem: mingw32
Package: mingw32-automake1.4 Subsystem: mingw32
Package: mingw32-automake1.5 Subsystem: mingw32
Package: mingw32-automake1.6 Subsystem: mingw32
Package: mingw32-automake1.7 Subsystem: mingw32
Package: mingw32-automake1.8 Subsystem: mingw32
Package: mingw32-automake1.9 Subsystem: mingw32
Package: mingw32-autotools Subsystem: mingw32
Package: mingw32-base Subsystem: mingw32
Package: mingw32-basic-bsdtar Subsystem: mingw32
Package: mingw32-binutils Subsystem: mingw32
Package: mingw32-bsdcpio Subsystem: mingw32
Package: mingw32-bsdtar Subsystem: mingw32
Package: mingw32-bzip2 Subsystem: mingw32
Package: mingw32-dos2unix Subsystem: mingw32
Package: mingw32-expat Subsystem: mingw32
Package: mingw32-gcc Subsystem: mingw32
Package: mingw32-gcc-ada Subsystem: mingw32
Package: mingw32-gcc-fortran Subsystem: mingw32
Package: mingw32-gcc-g++ Subsystem: mingw32
Package: mingw32-gcc-objc Subsystem: mingw32
Package: mingw32-gcc-tools-epoch2-autoconf Subsystem: mingw32
Package: mingw32-gcc-tools-epoch2-automake Subsystem: mingw32
Package: mingw32-gcc-v3-ada Subsystem: mingw32
Package: mingw32-gcc-v3-core Subsystem: mingw32
Package: mingw32-gcc-v3-fortran Subsystem: mingw32
Package: mingw32-gcc-v3-g++ Subsystem: mingw32
Package: mingw32-gcc-v3-java Subsystem: mingw32
Package: mingw32-gcc-v3-objc Subsystem: mingw32
Package: mingw32-gdb Subsystem: mingw32
Package: mingw32-gdb-python Subsystem: mingw32
Package: mingw32-gendef Subsystem: mingw32
Package: mingw32-gettext Subsystem: mingw32
Package: mingw32-gmp Subsystem: mingw32
Package: mingw32-libarchive Subsystem: mingw32
Package: mingw32-libasprintf Subsystem: mingw32
Package: mingw32-libbz2 Subsystem: mingw32
Package: mingw32-libcharset Subsystem: mingw32
Package: mingw32-libexpat Subsystem: mingw32
Package: mingw32-libgcc Subsystem: mingw32
Package: mingw32-libgettextpo Subsystem: mingw32
Package: mingw32-libgfortran Subsystem: mingw32
Package: mingw32-libgmp Subsystem: mingw32
Package: mingw32-libgmpxx Subsystem: mingw32
Package: mingw32-libgnat Subsystem: mingw32
Package: mingw32-libgomp Subsystem: mingw32
Package: mingw32-libiconv Subsystem: mingw32
Package: mingw32-libintl Subsystem: mingw32
Package: mingw32-libltdl Subsystem: mingw32
Package: mingw32-liblzma Subsystem: mingw32
Package: mingw32-libminizip Subsystem: mingw32
Package: mingw32-libmpc Subsystem: mingw32
Package: mingw32-libmpfr Subsystem: mingw32
Package: mingw32-libobjc Subsystem: mingw32
Package: mingw32-libpdcurses Subsystem: mingw32
Package: mingw32-libpopt Subsystem: mingw32
Package: mingw32-libpthread-old Subsystem: mingw32
Package: mingw32-libpthreadgc Subsystem: mingw32
Package: mingw32-libpthreadgce Subsystem: mingw32
Package: mingw32-libquadmath Subsystem: mingw32
Package: mingw32-libquserex Subsystem: mingw32
Package: mingw32-libssp Subsystem: mingw32
Package: mingw32-libstdc++ Subsystem: mingw32
Package: mingw32-libtool Subsystem: mingw32
Package: mingw32-libunistring Subsystem: mingw32
Package: mingw32-libz Subsystem: mingw32
Package: mingw32-lua Subsystem: mingw32
Package: mingw32-make Subsystem: mingw32
Package: mingw32-mgwport Subsystem: mingw32
Package: mingw32-mingw-get Subsystem: mingw32
Package: mingw32-mingw-utils Subsystem: mingw32
Package: mingw32-mingwrt Subsystem: mingw32
Package: mingw32-minizip Subsystem: mingw32
Package: mingw32-mpc Subsystem: mingw32
Package: mingw32-mpfr Subsystem: mingw32
Package: mingw32-pdcurses Subsystem: mingw32
Package: mingw32-pexports Subsystem: mingw32
Package: mingw32-pkginfo Subsystem: mingw32
Package: mingw32-popt Subsystem: mingw32
Package: mingw32-pthreads-w32 Subsystem: mingw32
Package: mingw32-w32api Subsystem: mingw32
Package: mingw32-xz Subsystem: mingw32
Package: mingw32-zlib Subsystem: mingw32
Package: msys-autoconf Subsystem: msys
Package: msys-autogen Subsystem: msys
Package: msys-automake Subsystem: msys
Package: msys-base Subsystem: msys
Package: msys-bash Subsystem: msys
Package: msys-binutils Subsystem: msys
Package: msys-bison Subsystem: msys
Package: msys-bsdcpio Subsystem: msys
Package: msys-bsdtar Subsystem: msys
Package: msys-bzip2 Subsystem: msys
Package: msys-console Subsystem: msys
Package: msys-core Subsystem: msys
Package: msys-coreutils Subsystem: msys
Package: msys-crypt Subsystem: msys
Package: msys-cvs Subsystem: msys
Package: msys-cygutils Subsystem: msys
Package: msys-dash Subsystem: msys
Package: msys-diffstat Subsystem: msys
Package: msys-diffutils Subsystem: msys
Package: msys-dos2unix Subsystem: msys
Package: msys-expat Subsystem: msys
Package: msys-file Subsystem: msys
Package: msys-findutils Subsystem: msys
Package: msys-flex Subsystem: msys
Package: msys-gawk Subsystem: msys
Package: msys-gcc Subsystem: msys
Package: msys-gdbm Subsystem: msys
Package: msys-gettext Subsystem: msys
Package: msys-gmp Subsystem: msys
Package: msys-grep Subsystem: msys
Package: msys-groff Subsystem: msys
Package: msys-guile Subsystem: msys
Package: msys-gzip Subsystem: msys
Package: msys-help2man Subsystem: msys
Package: msys-inetutils Subsystem: msys
Package: msys-less Subsystem: msys
Package: msys-libarchive Subsystem: msys
Package: msys-libasprintf Subsystem: msys
Package: msys-libbz2 Subsystem: msys
Package: msys-libcharset Subsystem: msys
Package: msys-libcrypt Subsystem: msys
Package: msys-libexpat Subsystem: msys
Package: msys-libgdbm Subsystem: msys
Package: msys-libgettextpo Subsystem: msys
Package: msys-libgmp Subsystem: msys
Package: msys-libguile Subsystem: msys
Package: msys-libiconv Subsystem: msys
Package: msys-libintl Subsystem: msys
Package: msys-libltdl Subsystem: msys
Package: msys-liblzma Subsystem: msys
Package: msys-libmagic Subsystem: msys
Package: msys-libminires Subsystem: msys
Package: msys-libminizip Subsystem: msys
Package: msys-libopenssl Subsystem: msys
Package: msys-libopts Subsystem: msys
Package: msys-libpopt Subsystem: msys
Package: msys-libregex Subsystem: msys
Package: msys-libtermcap Subsystem: msys
Package: msys-libtool Subsystem: msys
Package: msys-libxml2 Subsystem: msys
Package: msys-lndir Subsystem: msys
Package: msys-locate Subsystem: msys
Package: msys-lpr-enhanced Subsystem: msys
Package: msys-m4 Subsystem: msys
Package: msys-make Subsystem: msys
Package: msys-man Subsystem: msys
Package: msys-minires Subsystem: msys
Package: msys-minizip Subsystem: msys
Package: msys-mintty Subsystem: msys
Package: msys-mksh Subsystem: msys
Package: msys-mktemp Subsystem: msys
Package: msys-openssh Subsystem: msys
Package: msys-openssl Subsystem: msys
Package: msys-patch Subsystem: msys
Package: msys-perl Subsystem: msys
Package: msys-popt Subsystem: msys
Package: msys-rebase Subsystem: msys
Package: msys-regex Subsystem: msys
Package: msys-rsync Subsystem: msys
Package: msys-rxvt Subsystem: msys
Package: msys-sed Subsystem: msys
Package: msys-system-builder Subsystem: msys
Package: msys-tar Subsystem: msys
Package: msys-termcap Subsystem: msys
Package: msys-texinfo Subsystem: msys
Package: msys-tiny Subsystem: msys
Package: msys-unzip Subsystem: msys
Package: msys-vim Subsystem: msys
Package: msys-w32api Subsystem: msys
Package: msys-wget Subsystem: msys
Package: msys-xz Subsystem: msys
Package: msys-zip Subsystem: msys
Package: msys-zlib Subsystem: msys

anywhere@any-place ~/temp20120609
$

mintty導入後の設定微調整とコンパイラー確認

1. Compile
2. 環境設定

1.Compileの基本確認
Cで動作確認用のソースを書いて、コンパイルの基本動作確認をしてみた。


#include <stdio.h>

main()
{
   int number;

   printf("Enter an integer\n");
   scanf("%d",&number);

   printf("Integer entered by you is %d\n", number);

   return 0;
}

コンパイルの動作確認

2. 環境設定
UTF-8とSJISが混在して日本語表示がおかしくなるので、ユーザー環境変数を変更。

—————————-
MEMO on July/1
—————————-
~/.profile

# lsで日本語を表示するためのalias
alias ls='ls --color=auto --show-control-chars'
# gettext用
export OUTPUT_CHARSET=sjis

~/.inputrc

set meta-flag on
set output-meta on
set convert-meta off
set kanji-code sjis

~/.minttyrc
Locale=ja_JP
Charset=SJIS

/share/misc/man.conf

# manは標準ではsjisで出力できないためutf8で出力する
JNROFF /usr/bin/groff -DeucJP -Tutf8 -mandoc
JNEQN /usr/bin/eqn -Tutf8

# PAGERでsjisへ変換
PAGER nkf -s | /usr/bin/less -isrR

~/.vimrc

set enc=sjis

参考:
mintty
Windowsで最高のターミナルを構築する方法
List of terminal emulators


nuttcpでネットワークの状態を簡易的に調査・検証する事が出来ます。
—————————————————————-
nuttcp is a TCP/UDP network testing tool, much like iperf.
I think it’s the best such tool available, for its simplicity, ease of use, and feature set.

http://www.lcp.nrl.navy.mil/nuttcp/
対象ドメイン navy.mil (mil:IANAトップドメイン情報)
組織・国・地域 military 米軍事機関用


Phil Dykstra’s nuttcp quick start guide

今回の検証は、最新のSTABLEバージョンで行いましたが、
6.2.7以降では再送処理も取得出来るそうです。
—————————————————————-
TCP retransmit info (Linux only)
Starting in version 6.2.7, nuttcp includes retransmit info for Linux.
This is much more convenient that using tcpdump to determine if the path has lots of congestion.

サーバー側
http://lcp.nrl.navy.mil/nuttcp/stable/rpm/nuttcp-5.3.1-1.i386.rpm
検証ではLinuxにてサーバーを実行

[root@colinux ~]# wget http://www.lcp.nrl.navy.mil/nuttcp/stable/rpm/nuttcp-5.3.1-1.i386.rpm
--2012-06-03 07:53:20--  http://www.lcp.nrl.navy.mil/nuttcp/stable/rpm/nuttcp-5.3.1-1.i386.rpm
www.lcp.nrl.navy.mil をDNSに問いあわせています... 132.250.114.61
www.lcp.nrl.navy.mil|132.250.114.61|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 52369 (51K) [application/x-rpm]
`nuttcp-5.3.1-1.i386.rpm' に保存中
100%[==========================================================================>] 52,369      82.5K/s 時間 0.6
2012-06-03 07:53:21 (82.5 KB/s) - `nuttcp-5.3.1-1.i386.rpm' へ保存完了 [52369/52369]
[root@colinux ~]# ls -l


[root@colinux ~]# rpm -ivh nuttcp-5.3.1-1.i386.rpm
準備中...                   ########################################### [100%]
   1:nuttcp                 ########################################### [100%]
[root@colinux ~]#


[root@colinux ~]# nuttcp -S
[root@colinux ~]# ps -ef | grep nuttcp
root      2882     1  0 08:01 pts/0    00:00:00 nuttcp -S
root      2884  2837  1 08:01 pts/0    00:00:00 grep nuttcp
[root@colinux ~]#

クライアント側
http://lcp.nrl.navy.mil/nuttcp/stable/bin/nuttcp-5.3.1.win32.zip
検証ではWindowsにてクライアントを実行

Colinuxで検証したので、以下のPortへのアクセス許可を設定してあります。
port number to send to|listen at (default 5001)
port number for control connection (default 5000)

nuttcp client

Help内容(オプション)
—————————————————————-
Usage: nuttcp or nuttcp -h prints this usage info
Usage: nuttcp -V prints version info
Usage: nuttcp -xt [-m] host forward and reverse traceroute to/from server
Usage (transmitter): nuttcp [-t] [-options] host [3rd-party] [ out ]
-4 Use IPv4
-6 Use IPv6
-c## cos dscp value on data streams (t|T suffix for full TOS field)
-l## length of network write|read buf (default 1K|8K/udp, 64K/tcp)
-s use stdin|stdout for data input|output instead of pattern data
-n## number of source bufs written to network (default unlimited)
-w## transmitter|receiver window size in KB (or (m|M)B or (g|G)B)
-ws## server receive|transmit window size in KB (or (m|M)B or (g|G)B)
-wb braindead Solaris 2.8 (sets both xmit and rcv windows)
-p## port number to send to|listen at (default 5001)
-P## port number for control connection (default 5000)
-u use UDP instead of TCP
-m## use multicast with specified TTL instead of unicast (UDP)
-M## MSS for data connection (TCP)
-N## number of streams (starting at port number), implies -B
-R## transmit rate limit in Kbps (or (m|M)bps or (g|G)bps or (p)ps)
-T## transmit timeout in seconds (or (m|M)inutes or (h|H)ours)
-i## receiver interval reporting in seconds (or (m|M)inutes)
-Ixxx identifier for nuttcp output (max of 40 characters)
-F flip option to reverse direction of data connection open
-d set TCP SO_DEBUG option on data socket
-v[v] verbose [or very verbose] output
-b brief output (default)
-D xmit only: don’t buffer TCP writes (sets TCP_NODELAY sockopt)
-B recv only: only output full blocks of size from -l## (for TAR)
Usage (server): nuttcp -S[f][P] [-options]
note server mode excludes use of -s
‘f’ suboption forces server mode (useful with rsh/ssh)
‘P’ suboption makes 3rd party {in,out}bound control ports same
-4 Use IPv4 (default)
-6 Use IPv6
-1 oneshot server mode (implied with inetd/xinetd), implies -S
-P## port number for server connection (default 5000)
note don’t use with inetd/xinetd (use services file instead)
–no3rdparty don’t allow 3rd party capability
–nofork don’t fork server
Format options:
-fxmitstats also give transmitter stats (MB) with -i (UDP only)
-frunningtotal also give cumulative stats on interval reports
-f-drops don’t give packet drop info on brief output (UDP)
-f-percentloss don’t give %loss info on brief output (UDP)
-fparse generate key=value parsable output

Bufferサイズを変更してネットワーク診断

C:\Tools\tmp\nuttcp>nuttcp-5.3.1.exe -v -v -i1 192.168.11.10
nuttcp-t: v5.3.1: socket
nuttcp-t: buflen=65536, nstream=1, port=5001 tcp -> 192.168.11.10
nuttcp-t: time limit = 10.00 seconds
nuttcp-t: connect to 192.168.11.10 with mss=0
nuttcp-t: send window size = 8192, receive window size = 8192
nuttcp-r: v5.3.1: socket
nuttcp-r: buflen=65536, nstream=1, port=5001 tcp
nuttcp-r: interval reporting every 1.00 second
nuttcp-r: accept from 192.168.11.2
nuttcp-r: send window size = 8192, receive window size = 8192
    1.0000 MB /   1.00 sec =    8.3886 Mbps
    1.3125 MB /   1.00 sec =   11.0100 Mbps
    0.8125 MB /   1.00 sec =    6.8157 Mbps
    1.1250 MB /   1.00 sec =    9.4372 Mbps
    2.1250 MB /   1.00 sec =   17.8258 Mbps
    1.3750 MB /   1.00 sec =   11.5343 Mbps
    0.7500 MB /   1.00 sec =    6.2915 Mbps
    1.2500 MB /   1.00 sec =   10.4858 Mbps
    0.8750 MB /   1.00 sec =    7.3400 Mbps
    1.1250 MB /   1.00 sec =    9.4372 Mbps
nuttcp-t: 11.7500 MB in 10.00 real seconds = 1203.20 KB/sec = 9.8566 Mbps
nuttcp-t: 188 I/O calls, msec/call = 54.47, calls/sec = 18.80
nuttcp-t: 0.0user 0.0sys 0:10real 0% 0i+0d 1806maxrss 20+0pf 0+0csw

nuttcp-r: 11.7500 MB in 10.12 real seconds = 1188.35 KB/sec = 9.7349 Mbps
nuttcp-r: 2711 I/O calls, msec/call = 3.82, calls/sec = 267.75
nuttcp-r: 0.0user 0.0sys 0:10real 0% 0i+0d 1690maxrss 0+0pf 0+0csw

---------------------------------------------------------------
http://www.wcisd.hpc.mil/nuttcp/Nuttcp-HOWTO.html
  -i1       to watch tests run (1 second intervals)
  -w8m      to set socket buffers ("window") to 8 MBytes
  -u        for UDP tests
  -R10m     for a 10 Mbps UDP test (or TCP rate limit)
  -l512     to set UDP packet length (or TCP write size)
---------------------------------------------------------------


C:\Tools\tmp\nuttcp>nuttcp-5.3.1.exe -w8m -v -v -i1 192.168.11.10
nuttcp-t: v5.3.1: socket
nuttcp-t: buflen=65536, nstream=1, port=5001 tcp -> 192.168.11.10
nuttcp-t: time limit = 10.00 seconds
nuttcp-t: connect to 192.168.11.10 with mss=0
nuttcp-t: send window size = 8388608, receive window size = 8192
nuttcp-r: v5.3.1: socket
nuttcp-r: buflen=65536, nstream=1, port=5001 tcp
nuttcp-r: interval reporting every 1.00 second
nuttcp-r: accept from 192.168.11.2
nuttcp-r: send window size = 8192, receive window size = 8388608
   14.9651 MB /   1.00 sec =  125.5366 Mbps
   17.3642 MB /   1.00 sec =  145.6613 Mbps
   37.0160 MB /   1.42 sec =  218.3634 Mbps
   21.7070 MB /   0.59 sec =  306.5508 Mbps
   23.5170 MB /   1.00 sec =  197.2752 Mbps
nuttcp-t: 119.5625 MB in 10.00 real seconds = 12243.20 KB/sec = 100.2963 Mbps
nuttcp-t: 1913 I/O calls, msec/call = 5.35, calls/sec = 191.30
nuttcp-t: 0.0user 0.1sys 0:10real 2% 0i+0d 1806maxrss 20+0pf 0+0csw

nuttcp-r: 119.5625 MB in 5.88 real seconds = 20839.49 KB/sec = 170.7171 Mbps
nuttcp-r: 17961 I/O calls, msec/call = 0.33, calls/sec = 3057.19
nuttcp-r: 0.3user 1.3sys 0:05real 27% 0i+0d 1690maxrss 0+0pf 0+0csw

C:\Tools\tmp\nuttcp>


Beta版を利用してのretransmissionの確認
動作確認なので、同じホストで検証しています。

[root@colinux ~]# wget http://www.lcp.nrl.navy.mil/nuttcp/beta/nuttcp-7.1.6.c
--2012-06-03 09:09:54--  http://www.lcp.nrl.navy.mil/nuttcp/beta/nuttcp-7.1.6.c
www.lcp.nrl.navy.mil をDNSに問いあわせています... 132.250.114.61
www.lcp.nrl.navy.mil|132.250.114.61|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 251878 (246K) 
`nuttcp-7.1.6.c' に保存中

100%[=========================================================================================>] 251,878      113K/s 時間 2.2s

2012-06-03 09:09:57 (113 KB/s) - `nuttcp-7.1.6.c' へ保存完了 [251878/251878]

[root@colinux ~]# 

[root@colinux nuttcp]# cc -O3 -o nuttcp nuttcp-7.1.6.c
[root@colinux nuttcp]# 
[root@colinux nuttcp]# ls -l
合計 392
-rwxr-xr-x 1 root root 138267 2012-06-03 09:11 nuttcp
-rw-r--r-- 1 root root 251878 2012-03-01 06:29 nuttcp-7.1.6.c
[root@colinux nuttcp]# ./nuttcp -S
[root@colinux nuttcp]# ./nuttcp -i1 localhost
   82.7500 MB /   1.00 sec =  694.1462 Mbps     0 retrans
   93.9375 MB /   1.00 sec =  787.9930 Mbps     0 retrans
   94.5625 MB /   1.00 sec =  793.2358 Mbps     0 retrans
   94.8125 MB /   1.00 sec =  795.3330 Mbps     0 retrans
   94.3125 MB /   1.00 sec =  791.1387 Mbps     0 retrans
   94.5625 MB /   1.00 sec =  793.2358 Mbps     0 retrans
   94.4375 MB /   1.00 sec =  792.1873 Mbps     0 retrans
   93.9375 MB /   1.00 sec =  787.9930 Mbps     0 retrans
   93.7500 MB /   1.00 sec =  786.4202 Mbps     0 retrans
   90.7500 MB /   1.00 sec =  761.2548 Mbps     0 retrans

  928.9531 MB /  10.01 sec =  778.4721 Mbps 82 %TX 18 %RX 0 retrans
[root@colinux nuttcp]#

nuttcp compile

nuttcp retrunsmit

nuttcp retrunsmit

retrunsmit

参考:
http://wcisd.hpc.mil/nuttcp/Nuttcp-HOWTO.html
http://fasterdata.es.net/performance-testing/network-troubleshooting-tools/nuttcp/
http://sourceforge.jp/magazine/08/08/22/0159234
http://hylom.net/2011/05/18/nuttcp_thruput_benchmarking/


RDBMS(MS SQL,Oracle,MYSQL等)はOLTP等のリアルタイムのデータ分析、
またNoSQLが最近の世の中のコンテンツリッチ化や大容量データ分析(NOT REALTIME)
のDWH系選択肢として話題になっているので少しレビューしてみたいと思います。
まずは自分のクライアントで手軽に試せるのでWindows版でテストしてみました。

MongoDB is an open source, document-oriented database designed with both scalability
and developer agility in mind. Instead of storing your data in tables and rows as you
would with a relational database, in MongoDB you store JSON-like documents with dynamic schemas.
The goal of MongoDB is to bridge the gap between key-value stores (which are fast and scalable)
and relational databases (which have rich functionality).

MongoDBは、Shardingによって水平スケーリングが可能である。
これはBigTableやPNUTSのスケーリングモデルに非常に良く似ている。
開発者はshardキーを選択し、このキーがデータをどのように分散させるかを決める。
データ中のキーを元にデータを分散させるshardが決められる。

関連ドキュメント
Presentations Matching: MongoDB Tokyo 2012

http://www.10gen.com/
http://www.mongodb.org/
http://www.mongodb.org/downloads

対応OS
OS X 32-bit
note OS X 64-bit Linux 32-bit
note Linux 64-bit Windows 32-bit
note Windows 64-bit Solaris i86pc
note Solaris 64 Source

MongoDB on Windows
http://www.mongodb.org/downloads

Windows7での利用
mongodb-win32-x86_64-2.0.5.zipダウンロード

インストール手順
http://www.mongodb.org/display/DOCS/Quickstart+Windows

① Unzip
Unzip the downloaded binary package to the location of your choice.
You may want to rename mongo-xxxxxxx to just “mongo” for convenience.

② Create a data directory
By default MongoDB will store data in \data\db, but it won’t automatically
create that folder.

※If you prefer to place datafiles elsewhere,
 use the –dbpath command line parameter when starting mongod.exe.
 他のパスにデータを配置したい場合は、MYSQLでいうdatadirのようにデータパスを
 起動時に指定してあげれば良いようです。

ダウンロードした実行ファイルとデータ用にフォルダーを作成しました。

mongodb install

③ Run and connect to the server

C:\mongodb\bin>mongod
mongod –help for help and startup options
Sun May 20 08:20:03 [initandlisten] MongoDB starting : pid=10660 port=27017 dbpath=/data/db 64-bit host=any-place
Sun May 20 08:20:03 [initandlisten] db version v2.0.5, pdfile version 4.5
Sun May 20 08:20:03 [initandlisten] git version: 1bb4de4630302fad8af53824ca4f627db490b753
Sun May 20 08:20:03 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack=’Service Pack 1′) BOOST_LIB_VERSION=1_42
Sun May 20 08:20:03 [initandlisten] options: {}
Sun May 20 08:20:03 [initandlisten] journal dir=/data/db/journal
Sun May 20 08:20:03 [initandlisten] recover : no journal files present, no recovery needed
Sun May 20 08:20:04 [initandlisten] waiting for connections on port 27017
Sun May 20 08:20:04 [websvr] admin web console waiting for connections on port 28017
Sun May 20 08:21:04 [clientcursormon] mem (MB) res:20 virt:82 mapped:0

Note: It is also possible to run the server as a Windows Service.

mongod start

④ Start the administrative shell

C:\mongodb\bin>mongo
MongoDB shell version: 2.0.5
connecting to: test
> 3+3
6
> db
test
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ “_id” : ObjectId(“4fb82c2961d4fad4249cd4a5”), “a” : 1 }
> show dbs
local (empty)
test 0.078125GB
> show collections
foo
system.indexes
>

データをINSERT,SAVE,FIND出来ます。
基本的には、”Key”と”Value”がペアになっています。

> db.foo.insert( { d : 4 } )
> db.foo.insert( { e : 5 } )
> db.foo.find()
{ “_id” : ObjectId(“4fb82c2961d4fad4249cd4a5”), “a” : 1 }
{ “_id” : ObjectId(“4fb832e8606ee417ccf80408”), “b” : 2 }
{ “_id” : ObjectId(“4fb8331c606ee417ccf80409”), “c” : 3 }
{ “_id” : ObjectId(“4fb833a4606ee417ccf8040a”), “d” : 4 }
{ “_id” : ObjectId(“4fb833ab606ee417ccf8040b”), “e” : 5 }

> db.foo.save( { f : 6 } )
> db.foo.find()
{ “_id” : ObjectId(“4fb82c2961d4fad4249cd4a5”), “a” : 1 }
{ “_id” : ObjectId(“4fb832e8606ee417ccf80408”), “b” : 2 }
{ “_id” : ObjectId(“4fb8331c606ee417ccf80409”), “c” : 3 }
{ “_id” : ObjectId(“4fb833a4606ee417ccf8040a”), “d” : 4 }
{ “_id” : ObjectId(“4fb833ab606ee417ccf8040b”), “e” : 5 }
{ “_id” : ObjectId(“4fb834a3606ee417ccf8040c”), “f” : 6 }
>

> db.foo.find({“e”:5})
{ “_id” : ObjectId(“4fb833ab606ee417ccf8040b”), “e” : 5 }
>

mongod and mongo

mongod and mongo

———————————————————–
HELP内容
———————————————————–
db.help() help on db methods
db.mycoll.help() help on collection methods
rs.help() help on replica set methods
help admin administrative help
help connect connecting to a db help
help keys key shortcuts
help misc misc things to know
help mr mapreduce

show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries with time >= 1ms
show logs show the accessible logger names
show log [name] prints out the last segment of log in memory, ‘global’ is default
use set current database
db.foo.find() list objects in collection foo
db.foo.find( { a : 1 } ) list objects in foo where a == 1
it result of the last line evaluated; use to further iterate
DBQuery.shellBatchSize = x set default number of items to display on shell
exit quit the mongo shell
———————————————————–

データフォルダーの確認

mongodb data dir

mongodb data dir

http://localhost:28017/にて状況確認

mongodb process confirmation

mongodb process confirmation

Drivers
MongoDB currently has client support for the following programming languages:
http://www.mongodb.org/display/DOCS/Drivers

mongodb.org Supported

C
C++
Erlang
Haskell
Java
Javascript
.NET (C# F#, PowerShell, etc)
Node.js
Perl
PHP
Python
Ruby
Scala

Community Supportedには,その他色々あるようです。
Linux版、Hadoopとの連携等はまた後日確認。


普段MYSQLをWindowsで利用する事がないので、一応最低限の
事は知識として知っておこうと思い覚書。。。

MySQL はすべての Windows プラットフォームで TCP/IP をサポートしています。
platforms.mysqld-nt サーバは Windows NT、2000、XP、および 2003 上の名前付きパイプ
をサポートしています。しかし、デフォルトではプラットフォーに関係なく TCP/IP を使用します。
(名前付きパイプは多くの Windows 設定では TCP/IP より低速です。)

名前付きパイプの使用は以下の条件

1) 名前付きパイプはサーバを –enable-named-pipe オプションで起動したときのみ有効
です。このオプションは明示的に使用する必要があります。
2)名前付きパイプの接続は mysqld-nt サーバにのみ可能で、サーバが名前付きパイプを
サポートしている Windows のバージョン (NT、2000、XP、2003) で動作している時のみ
使用できます。
3)これらのサーバは Windows 98 あるいは Me でも動作しますが、TCP/IP がインストール
されている時のみで、名前付き接続は使用できません。
4)これらのサーバは Windows 95 では動作しません。

    接続プロトコルとOSによる接続の違い

==============================================
TCP/IP
==============================================
全てのOSで使用可能
リモート、ローカルで使用可能
--skip-networking optionを指定してMYSQLを起動すると無効になる。

==============================================
Unix Socket file
==============================================
Unix系 OS
ローカル接続のみ
TCP/IPよりパフォーマンスが良い

==============================================
Named pipe
==============================================
Windows OS
ローカル接続のみ
mysql-nt,mysql-max-nt
--enable-named-pipe optionを使用しサーバを起動必要あり
TCP/IPより遅い

==============================================
Shared memory
==============================================
Windows OS
ローカル接続のみ
--shared-memory optionを使用しサーバを起動必要あり

2.3.8. MySQL サーバ タイプの選択


━ お勧めソフトウエア ━ FREE

RamPhantom3 LE」は、メモリーの一部を利用して仮想ハードディスクドライブ(RAMディスク)を作成するソフトです。 RAMディスクは、通常のハードディスクに比べデータの転送速度が圧倒的に高速。ハードディスクの代わりに使うと、読み書きに時間がかかるソフトも快適に利用できます。

パソコンの搭載メモリーが4GBの場合、メモリーの表示容量上は4GBであっても、実際にシステムメモリーとして使用できるのは3~3.5GBとなります(32bitOSの場合)。残りの容量を有効に活用できていないのです。

しかし、RamPhantom3LEを使用することで、
今まで使用できていなかったメモリー領域を有効化できます。
つまり、OS管理外の使用されていないメモリ領域(最大1GB)を有効活用する事ができます。
※OS管理内も含めると最大2GBのRAMディスクを作成する事が可能です。

●一度見たWebページの再表示が速い!
WebブラウザのキャッシュをRAMディスクに設定することで、
一度見たWebページを次回開く際にメモリーから高速に読み出し、表示します。
RamPhantom3の設定画面で、InternetExplorerとFireFoxの設定を簡単に変更できます。
●Photoshop等の仮想ディスクの設置場所として設定。解像度の高い画像の処理などに効果的!
大容量メモリーを搭載した環境なら、メインメモリー+RAMディスクで、遅いHDDから解放されます。
●ゲームのインストール先にすると、様々なデータを超高速読み込み!
●動画エンコーダー・デコーダー、ファイル圧縮する時の一時ファイル領域に!
●オーディオ編集、ビデオ編集で複数のクリップをミキシングする際のタイムラグを軽減。

ramdisk

ramdisk