HOME > CONIT Labs.

CONIT Labs.

MySQLのパフォーマンスって?


こんにちは開発TEAM佐々木です。

Google app engine 記事が多いのコニットラボですが、

じゃあMySQLってどうなのよ。

と思い立ち、簡単なパフォーマンス検証をしてみました。

環境
サーバ
KVM仮想マシン上で動いているUbuntu8.04のMySQL5
Cpu3Ghz,Mem1GB

クライアント
Windows7 on iMac
Python2.5
MySQL-Python

INSERTを100回 ,SELECTを100回行う時のパフォーマンスです。

インサートテストはこんなソース

セレクトテストはこんなソース

結果はこの通り。
# insert and commit 100 times
0:00:00.104000

# select 100 times
0:00:00.038000

ネットワーク越しに実行したのですが、小さいデータであれば、
インサートが秒間1000回程度
セレクトが秒間2500回程度

めっちゃ早いじゃんかMySQL。

Amazon EC2の新しいリージョン


こんにちは、いちかわです

本日、Amazonより初のアジア向けリージョンが発表されました。

なぜ日本ではないかは置いておいて、今まで国内からEC2を使う際の問題の一つとして、レスポンスが遅いというのがありました。

バージニアのリージョンでサーバを立てていたとしたら、日本からアクセスする場合は、海底ケーブルを通り抜けて、アメリカでいくつものルーターを抜け東海岸まで行って帰ってくる必要があります。

それが、同じアジア内に出来たのだから、距離的にも近い事から速度の改善がかなりされたのではないかと期待します!

なので、早速実験をしてみました。

今持っているAMIを使ってアジアのリージョンに新しいインスタンスを立ててみたいと思います。
と、いきなりそうはいきませんでした。。
自分で作成したAMIを別のリーションで使うためには、AMIが入っているS3のデータを使いたいリージョンの方へ移動しなければならないようです。

調べてみると、「ec2-migrate-bundle」ってコマンドを使う必要があるみたいなので、既存のEC2のインスタンスにSSHでログインして、コマンドを実行してみます。
コマンドは、以下のオプションを指定
ec2-migrate-bundle
-k 秘密鍵
-c 証明書
-a アクセスキー
-s シークレットキー
–bucket イメージがあるバケット
–manifest image.manifest.xml
–location S3バケットのリージョン
–region リージョン
–destination-bucket コピー先のバケット名

実行してみると、なんかエラーが。。
–location has invalid value ‘ap-southeast-1a’
Try ‘ec2-migrate-bundle –help’

??
ドキュメントをよく読んでみたら、locationで「Valid Values: US | EU」と書かれているので、もしやアジアはまだ対応していない??

仕方なく、最小構成のインスタンスを、東海岸と、アジアのリージョンに立てました。
仮のテストなので、Apache2.2.59と、php5.2だけをyumでインストールして、ファイルを受信するphpと、ダウンロードするファイルをアップロードします。

そして、その結果はというと。。

なんか残念な結果になってしまった。

今回テストで使用したのは、ファイルの情報で見ると 5,120,712 バイトのデータです。

東海岸(US – N. Virginia)
アップロード:17268 msec
ダウンロード:18889 msec

アジア(APAC – Singapore)
アップロード:16039 msec
ダウンロード:17312 msec

登りも、下りも1秒ぐらいしかかわらない・・。
なんだこれ。。

やり方が悪いのかと、自分が借りているサーバに同じ受信用のphpと、ダウンロードするファイルを置いてテスト。

月500円のレンタルサーバ
アップロード:1745 msec
ダウンロード:1480 msec

爆速である。

うーーん、期待してたほどのパフォーマンスは発揮できていないようですね。。

JMeterを使ってテストしたので、その結果が以下の画像です。

(真ん中のWarningは無視してください)

GAEでのデータダウンロード


こんにちは 阿久津です。

前回に続き、今回もGAEネタです。
これも連載4回目となりました。
過去の記事は、下記リンクより参照してください。

第1回 Google App Engineを使ってみよう!!
第2回 GAE Datastoreのデータ取得パフォーマンスを検証!!
第3回 GAEでのデータアップロード

今回は、前回アップロードしたデータをダウンロードする方法を書いていきたいと思います。
手順は以下のとおりです。

  1. 事前準備
  2. ローダクラス作成
  3. 実行

では、各項目の詳細を書いていきたいと思います。

■ 事前準備

事前準備に関しては、前回の第3回 GAEでのデータアップロードと同じなのでそちらを参照してください。

■ ローダクラスの作成

※このローダクラスは、CSV形式でダウンロードする方法です。

from google.appengine.ext import db
from google.appengine.tools import bulkloader

class User(db.Model):
userid=db.StringProperty()
username=db.StringProperty()

class UserExporter(bulkloader.Exporter):
def __init__(self):
bulkloader.Exporter.__init__(self,’User’,[
('__key__',str,None),
('userid',str,None),
('username',str,None),])

exporters = [IuserExporter]

前回のアップロードデータと同様、クラスモデルをimportすると実行時にクラスが見つからないというような
エラーが発生するので、暫定対応としてローダクラスに再度クラスモデルを定義しています。

■ 実行

下記コマンドをターミナルにて実行する。

appcfg.py download_data –config_file=Userexport.py –filename=./Userdate +\%y\%m\%d.csv –kind=User –batch_size=50 .

最後の.(ドット)は、app.yamlが置いてあるディレクトリを指定する。

こうやってかいてみると、かなり簡単にデータのダウンロードをできることが
わかってもらえるかと・・・
ただ、google app engineの日本語のサイトより英語のサイトのほうが詳しく記載されているので
そちらを参照することをお勧めします。
英語サイトのURLは、http://code.google.com/intl/en/appengine/docs/python/tools/uploadingdata.html#Downloading_Data_from_App_Engine です。

ではでは、今回はこのへんで

コニット開発室

CONIT Official Tweet

CONIT Facebook FanPage

CONIT BLOG

株式会社コニット

SamuraiSmartphoneServices

Buy and take only medicines from online pharmacy ,]}$ drugs online has affordable prices. Brand name drugs Canadian pharmacy [*}: compare drug prices Canada delivering medicines at your door. Free online consultation at https://canada-pharmacy-store.com <;) order cialis highest value and quality. Is it legal to mail prescription drugs? Yes, Canadian drugs [.($ order viagra . After ordering you will be contacted by our managers and agree on the delivery details.