S3のmultipart uploadが本当に有効かどうか測ってみた
わんばんこ、ザビオです。
AWS Advent Calendar 2013の18日目の記事です。
題名の通りですが、容量が大きいファイルはS3のmultipart uploadを利用すると通常送信より早く送り終わるみたいなのですが、multipart uploadを利用した際に、どれくらい早くなるのか、測ってみようと思ったので、測ってみました。
multipart uploadなし
容量 | 実行完了時間 |
---|---|
1MB | 0.754267 sec |
5MB | 1.990114 sec |
10MB | 3.154825 sec |
100MB | 15.70757 sec |
1GB | 211.044775 sec |
multipart uploadあり
容量 | 実行完了時間 |
---|---|
1MB | 0.783278 sec |
5MB | 1.652858 sec |
10MB | 3.467234 sec |
100MB | 14.706926 sec |
1GB | 154.335374 sec |
※3回実行し、実行結果の平均値を記載していています。
容量大きいデータだと、そこそこ差が出てきますね。
時間の関係上1GBしか測定出来ませんでしたが、もう少し容量大きくなると結構差が出そう。
Net-SNMPで外部コマンドでハマったの
最近、snmpで外部コマンドを実行して、実行結果をホニャホニャする作業をよく行なっています。
CentOSやRed hat系は、snmpdのdaemonがrootユーザで動作します。
しかし、Debianですと、snmpdのdaemonがsnmpで動作しているので、
外部コマンドの結果が"Permission denied"と怒られる訳です。
snmp 12085 0.0 0.1 56372 10624 ? Sl Mar19 0:22 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1
そんな時は、snmpd.confにadduser ****/uid を指定して再起動すれば、そのユーザで起動されるというお話
agentuser zabbio
Zabbix2.0で古いZabbix-agentを監視してみる
最近、ブログ全然更新しないでサボりまくっております・・・
今回は、Zabbixネタで・・・あんまり需要ない感じががが・・・\(^o^)/
今日ツイッターで、上がった質問がサクッと検証出来そうだったので試してみました。
Zabbixは互換性があるので、バージョン違っても大体動くと聞いていたので、試してみました。
※新バージョンにしか実装されていない機能の場合は、もちろん古いバージョンだと使えません・・・。
Zabbix-Serverは2.0.5
Zabbix-Agentは3台で(1.4.7、1.6.9、1.8.16)で試しました。
まずは、ServerにAgentを登録して、デフォルトのLinuxテンプレートを割り当てました。
画面小さいですが、とりあえず正常に監視できていそうです。
値もちゃんと取れているものもあります。
それでは本題ですが、zabbix-getを使って、値を幾つか取ってきましょうー。
と、取れました。
@kodai74先生から回答がありました。
どうやらzabbix_senderが上手くいかないかもしれないとの事なので、ついでに試してみました。
zabbix_sender -z ******** -p 10051 -s zabbix1_4 -k nakatake.zabbio -o 200
zabbix_sender -z ******** -p 10051 -s zabbix1_6 -k nakatake.zabbio -o 300
zabbix_sender -z ******** -p 10051 -s zabbix1_8 -k nakatake.zabbio -o 400
貼りつけた画像は1.4ですが、無事にラッパー出来ました!
他のバージョンでも、特に問題なく出来ました!
プロトコルの内容が変わっているみたいですが、ある程度の監視項目は取得出来ました!
結論
バージョン違っていてもある程度、互換性がある。
みんなZabbix使おうよということです。
退職しました!
はい、びっくりされた方もいるかもしれませんが、
今月末をもって退職いたします。
とても短い期間で辞めることになってしまい、
いろんな方々にご迷惑をお掛けしまして、申し訳ございませんでした。
辞める理由としては、会社に非はなく、僕のワガママで辞めることになりました。
そんなワガママを受け入れてくださった、大石さんを始め、羽柴さん、柳瀬さん、その他大勢の方々に感謝いたします。
ありがとうございます!
お世話になる前は、自分でもできるっと思っていたことが、外に出てみたら全く出来なかったり、
打ち合わせや、勉強会でも伝えたいことがうまく伝わっていなかったり、技術的な面以外でも悔しい思いをしました。
その度に、僕を叱咤激励して下さった、羽柴さん柳瀬さんや小室さん、前田さん、後・・・リーダー?には感謝してもしきれません!
本当にありがとうございます!今度ともお付き合いしていただけると嬉しいです!
福岡のエンジニアの方々も大変優しくしていただいて感謝しております。
イスではなく、手榴弾が飛ぶと噂があり、ガクブル状態でありましたが、そんなことなかったですw
hktstudyは不滅なので引継ぎませんが、1年に1回はやりましょう★
またフリースペースとして場所を貸していただいた、アラタナ様を始め
市江さんや、宮崎さん、博士、しかさん・・・和田さんありがとうございます!
とてもエロいことを教えて下さいましてありがとうございます!このエロ知識で東京でもやっていければいいなと思っております。
私は、渋谷のヒカリエのDeNAに行く事になりますが、皆様今後共変わらずお付き合いのほど、よろしくお願い致します。
ザビオ
ELBのhttp_status_codeをfluentdを使って可視化してみる
前回記事の下りが長すぎるので、短くいきます!
AWS Advent Calender 24日目です!クリスマスですが、クリスマスには全く関係ありません!
途中までしか動作確認できていませんのであしからず・・・
そしてネタ的にもAWSあんまり関係な・・・
やりたいことは
・fluentdでaccessログのステータスコードをカウント
・カウント結果をZabbixに放り込む
・ELBからインスタンスが外れた場合にアラートメール
※fluentdのプラグインでCloudwatchとか出来たら・・・・それ使いますw
※fluentd流行っているみたいなので波に乗っかりました・・・
となっております。
まずはWebサーバーにfluentd(td-agent)インストールとプラグインインストール。
# cat /etc/yum.repos.d/td.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
# /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-datacounter fluent-plugin-zabbix fluent-plugin-forest
td-agentd.confを編集
# vim /etc/td-agent/td-agent.conf# accessログのレスポンスコードごとにカウント
type copy
compress gzip
type file
path /var/log/td-agent/access_log
type datacounter
count_key code
aggregate all
tag count.apache.access.code
pattern1 2xx ^2\d\d$
pattern2 3xx ^3\d\d$
pattern3 4xx ^4\d\d$
pattern4 5xx ^5\d\d$
# ファイルとして保存
type copy
type file
path /var/log/td-agent/countaccess_log
type zabbix
zabbix_server ***.***.***.***
host zabbio-test
port 10051
name_key_pattern [2345]xx_count
add_key_prefix apache
上記設定後、td-agent起動
service td-agent start
chkconfig td-agent on
accesslogがこのような形に変換されます
2012-12-24T14:35:10+00:00 count.apache.access.code {"unmatched_count":0,"unmatched_rate":0.0,"unmatched_percentage":0.0,"2xx_count":2,"2xx_rate":0.03,"2xx_percentage":100.0,"3xx_count":0,"3xx_rate":0.0,"3xx_percentage":0.0,"4xx_count":0,"4xx_rate":0.0,"4xx_percentage":0.0,"5xx_count":0,"5xx_rate":0.0,"5xx_percentage":0.0}
2012-12-24T14:37:10+00:00 count.apache.access.code {"unmatched_count":0,"unmatched_rate":0.0,"unmatched_percentage":0.0,"2xx_count":2,"2xx_rate":0.03,"2xx_percentage":16.666666666666668,"3xx_count":0,"3xx_rate":0.0,"3xx_percentage":0.0,"4xx_count":10,"4xx_rate":0.16,"4xx_percentage":83.33333333333333,"5xx_count":0,"5xx_rate":0.0,"5xx_percentage":0.0}
設定完了後、Zabbixに監視項目を登録
keyは、2xx_percentageや、2xx_rateも使えるのでELBの下にぶら下がるインスタンスの生存確認等に使ってみるのもいいのではないかと思いましたー。
これで、Zabbixでhttp_status_code毎のグラフを表示したいのですが、続きは次回・・・!?
大容量のDBデータを準備する
そこそこ大きいDBデータが欲しいと言われたら
あなたはどうしますか?
今回はMySQLのWikipediaデータを使ってmysqlに突っ込んでみましょう。
xml2sqlのインストール
wikipediaで提供しているXMLフォーマットのデータをmysqlやpostgresqlにインポートできるxml2sqlというツールが用意されているので、これを利用します。
http://meta.wikimedia.org/wiki/Xml2sql
yum install expat-devel
wget http://ftp.tietew.jp/pub/wikipedia/xml2sql-0.5.tar.gz
tar zxvf xml2sql-0.5.tar.gz
cd xml2sql-0.5
./configure
make
cp xml2sql $HOME/bin/
wikipediaの全てのデータをダウンロード
wget http://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2
bzip2 -d jawiki-latest-pages-articles.xml.bz2
下記の形で展開
cat jawiki-latest-pages-articles.xml | sed -e 's/.*<\/ns>\| \| .*<\/parentid>\| \| .*<\/sha1>\| \| .*<\/model>\| \| .*<\/format>\| \| .*<\/redirect>\| //' | xml2sql
ll -h
5.8G 11月 13 01:39 2012 text.txt
139M 11月 13 01:39 2012 page.txt
189M 11月 13 01:39 2012 revision.txt
mysqlimportで展開
mysqlimport -d -L zabbio text.txt
mysqlimport -d -L zabbio page.txt
mysqlimport -d -L zabbio revision.txt