負荷テストツールSiegeのインストールと使い方・オプション・結果の見方

SiegeはWEBサーバに負荷をかけるツールです。同様のツールとしてApache Bench, httperf, Tsung, JMeterなどありますが、私は主にJMeterとSiegeを利用しています。 siegeのインストールと使い方・オプション・結果の見方をまとめました。

Amazon Linux 2013.09 に GitLab6.1 をインストール

GitLabはGitHubのクローンです。 サーバにプライベートなGitHubを構築することができます。 公式は Debian/Ubuntu を対象としていますが、Amazon Linuxにインストールしみました。 このような記事は生物ですが、「Amazon Linux 2013.09」AMI起動直後のインス…

Javaの標準AES暗号化アルゴリズム互換のRuby(Python)実装

随分前に悩んだことでまた悩んでしまったのでメモ。 Java/Python/Rubyのそれぞれの実装をまとめました。

Qiita移行

書く場所を一本化するため、Qiitaに保存していた作業メモをこのブログに移行しました。 かなり雑多。 http://nori3tsu.hatenablog.com/archive/2013/9 あとSNS連携テスト。 しかしはてなブログ使いやすいなー。 Markdownとかコードのシンタックスハイライト…

EC2→VPC移行メモ

EC2インスタンスをVPCに移行する際の簡易作業メモ。

ELBにSSL証明書を登録する

証明書と秘密鍵の作成 $ openssl genrsa 2048 > private-key.pem $ openssl req -new -key private-key.pem -out csr.pem $ openssl req -x509 -days 3650 -in csr.pem -key private-key.pem -out hostcert.pem 登録 $ iam-servercertupload -b hostcert.pem…

Maven 依存ライブラリを指定ディレクトリにコピー

$ mvn dependency:copy-dependencies -DoutputDirectory=lib

siegeでPOSTリクエストを送信

パラメータ用のファイルを作成。 URLの末尾に"POST"パラメータをつける。 ex) request.txt http://127.0.0.1/users POST key1=value1&key2=value2 siegeを実行。 $ siege -c 1 -r 1 -f request.txt

Rubyのaws-sdkでプロキシを使う

require "aws-sdk" config = { :access_key_id => "access key id", :secret_access_key => "secret access key", :proxy_uri => "http://127.0.0.1:8080" } AWS.config(config) s3 = AWS::S3.new

LinuxからWindowsのディレクトリを共有

一時的にマウントする場合。 $ sudo mount -t cifs -o username=${username},password=${password},rw,fmask=0666,dmask=0777,uid=${uid} ,gid=${gid}//${hostname}/${directory} /mnt/${directory} 起動時にマウントする場合は/etc/fstabに書く。 ~ # 末尾…

Rspecで特異メソッド・インスタンスメソッドのスタブの書き方

# 特異メソッド Time.stub(:method_name) { value } # インスタンスメソッド Time.any_instance.stub(:method_name) { value }

CentOS6.3のrbenv(1.9.2p180)にdebuggerをインストールしてrailsを起動するまでのメモ

作業メモ。

ファイルのタイムスタンプを統一する

$ find . -type f -exec touch -d "`date '+%Y/%m/%d 00:00:00'`" {} \;

タイムゾーンの変更

タイムゾーンをJSTに変更 $ cp /usr/share/zoneinfo/Japan /etc/localtime

Signal.trapの上書き

既存の処理を上書きせずに、trapの処理を追加したい場合。 とりあえずこんな感じで出来た。 例:USR1シグナルの処理を追加する場合。 signal = :USR1 proc = Signal.trap(signal, nil) Signal.trap(signal) { proc.call # 追加処理 }

varnishのvmodインストールメモ

依存ライブラリのインストール $ sudo yum install -y pcre-devel python-docutils automake libtool readline-devel varnishコンパイル $ curl -LO http://repo.varnish-cache.org/source/varnish-3.0.4.tar.gz $ tar zxvf varnish-3.0.4.tar.gz $ cd varni…

ブログ移行

シンプルさを求めFC2からはてなブログに移行しました。 以前のブログは閉鎖しました。 ブックマークやRSSなどに登録頂いている方がいらっしゃいましたら、 こちらのURLに変更をお願いします。

Liferayによるマルチキャストクラスタリングがうまくいかない場合の調査方法

Liferayが内部で使用しているEHCache,Luceneなどのクラスタリングは、マルチキャストにより実装されています。 マルチキャストで実装することにより、自ホスト以外のサーバ台数や接続情報を気にすることなく、新たなサーバをクラスタに追加させることができ…

Liferay 6.0 CE でモバイル対応

Liferay 6.1 CE では標準でモバイル対応機能が入っていますが、Liferay 6.0 CE には入っていないため追加する必要があります。Liferay 6.0 CE にモバイル対応機能を追加する方法をメモします。環境 Liferay 6.0.6 CE関連ファイルのダウンロード Liferay 6.0 …

= require_tree . # この行を削除

それぞれのrequire_treeを削除したことでControllerに属するJS/CSSファイルが結合対象外となったため、レイアウトで読みこむように指定します。ファイル:app/views/layouts/application.html.erb "all" %> javascript_include_tag params[:controller] %> …

JS/CSSファイルをControllerごとに分離する

Rails3.1以降では全てのJS/CSSが結合+圧縮されますが、それぞれのControllerに属するJSファイル内でjQueryのセレクタを使用した場合に、意図しない挙動が発生することがあったため、Controllerは結合の対象外とすることにしました。以下に行ったことをメモし…

Fluentdのログを消失させたくない話

fluentdのリトライ処理に失敗した場合に、ログを消失させたくない+処理に失敗したログを復旧させたいという話です。fluentdのBufferedOutput系のpluginは、retry_limitに記載されているリトライ回数を消費してしまった場合、"throwing away old logs."のwar…

in_tailの正規表現をテスト

in_tailのformatに正規表現を書く時は、 (修正→設定ファイル読み込み→確認) x nとしてましたが、 もっと簡単にテストしたかったので、formatで使用する正規表現のテスト方法を調べてみました。ソースを見てみると、どうやらfluent/parserの"RegexpParser"ク…

RubyのCassandraクライアントでバッチ処理。

大量データの読み込み, 書き込みのバッチ処理を効率よく行うため、Cassandraクライアントにはバッチ処理用の仕組みが用意されています。環境 cassandra (0.12.1)読み込み 大量データを処理するバッチ処理では、Cassandra内のデータを意識せずに読み込むと メ…

RubyのCassandraクライアントで分散カウンタの削除。

Cassandraクライアントから分散カウンタの削除ができなくてハマったのでメモ。環境 cassandra (0.12.1)対策 Cassandraの0.8から分散カウンタが追加されていて、Cassandraクライアントにも"add"というメソッドが追加されています。 これは分散カウンタ用のメ…

RubyのCassandraクライアントで指定したIPに接続できない怪現象。

rubyのcassandraクライアントから別サーバのcassandraに接続する場合に、指定したIPに接続されずローカルホストに接続してしまう怪現象が発生してハマったのでメモ。 (正直、Forkwellのパブリケーションに追加したい衝動に駆られて書きましたw)環境 ○サー…

サロゲートペア文字列の操作

目的Vistaが世に出てから、サロゲートペア文字列の扱いに頭を悩ませているエンジニアの方々も多いと思うのですが、「java サロゲートペア substring」とかで検索しても、なぜかそれっぽい記事が出てきません。 毎回実装するたび忘れて再実装しちゃうので、作…

ircd-hybridをssl通信で通信内容暗号化

irc

■ 目的 ircは通信内容が平文で流れるので、パケット解析ツールなどを使えば簡単に盗聴されてしまう。 通信内容をsslで暗号化して、セキュリティ向上をはかる。 ircd-hybridでのssl設定がどうしても見つからなかったため、stoneで、規定ポートへのパケットをs…

ircd-hybridのサーバーパスワード設定

irc

■ パスワード生成 ircに付属しているmkpasswdを使用(exceptのmkpasswdではない)して、md5でパスワードをエンコードする。# md5でエンコード(最後のexampleはsaltなのでなんでもよい) [root@example ~]# /usr/libexec/ircd/mkpasswd -m -s example plainte…