2013-01-01から1年間の記事一覧
最新版の Ruby と Apache での環境構築手順を整理してまとめてみました。 それぞれ RPM を作成してインストールしています。 また、Passenger も最新の 4 系にしてみました。OS は Webサーバ、RPM作成用サーバ共に CentOS 6.4 x86_64 です。 rpm-build の準…
「ImageMagick の OpenMP が有効だとサーバが高負荷になってしまう」問題を回避するために環境変数 OMP_NUM_THREADS に 1 を設定したものの、Nginx の場合、何故か /proc/$pid/environ に表示されませんでした。これでは本当に環境変数が正しく設定できてい…
Web サーバでの画像自動リサイズ方法をいろいろと調べていたところ、 Apache の mod_dims というモジュールを見つけたので試してみました。検証したのは以下の環境になります。 CentOS 6.3 x86_64 ImageMagick 6.8.5-10 依存ライブラリのインストール 依存ラ…
この前インストールした mod_small_light の Nginx 版、ngx_small_light をインストールしてみました。cubicdaiya/ngx_small_light https://github.com/cubicdaiya/ngx_small_lightこのモジュールを使うと Nginx でも Apache + mod_small_light と同じ感じで…
Apache 付属のベンチマークツール、Apache Bench(ab コマンド)は簡単に導入できて気軽に使えるのでお気に入りなんですが、残念ながら複数の URL を指定したベンチマークに対応していません。何とかする方法はないか調べてみたところ、独自のオプションを追加…
今更ですが、livedoor により提供されている mod_small_light をインストールしてみました。 mod_small_light は動的にサムネイル画像を生成したりできる Apache モジュールです。SMALL LIGHT 〜かんたん画像サムネイル作成モジュール〜 | livedoor labs EDG…
CentOS の Yum で ImageMagick を入れると、以下のようにデフォルトで OpenMP が有効になっています。 # yum install -y ImageMagick # convert --version Version: ImageMagick 6.5.4-7 2012-05-07 Q16 OpenMP http://www.imagemagick.org Copyright: Copyr…
Ruby で tar.gz を扱う方法を調べたところ、archive-tar-minitar というライブラリと zlib の組合せが簡単そうでした。archive-tar-minitar | RubyGems.org | your community gem host http://rubygems.org/gems/archive-tar-minitarというわけで使ってみた…
Redis でのデータの永続化方法について調べたので、忘れないうちにまとめておきます。調べた時の Redis のバージョンは 2.6.13 です。 スナップショット(RDB) Redis のデフォルトの永続化の仕組み この設定が有効な場合、Redis は定期的にデータベースの内容…
最近 Redis の Sharding 構成やレプリケーション構成を検証するために複数の Redis インスタンスを起ち上げる事が多いのですが、その度に一々設定を変更した redis.conf を用意するのが結構面倒でした。という事でちょっと調べてみると、どうやら redis-serv…
職場の人から「Vim で全角空白を入力した場合に、自動的に半角空白に置き換えたい」という話を聞いて、確かに便利そうだと思って調べてみました。 通常であれば inoremap とか使えば良さそうなんですが、どうやら全角空白には効かない模様。 " 普通の全角記…
一時期 Redis の特徴として良く挙げられていたものに、搭載している物理メモリ量以上のデータを扱える Virtual Memory という機能がありました。仮想メモリ技術仕様 ― redis 2.0.3 documentation http://redis.shibu.jp/hacker/virtualmemory.html個人的には…
Munin で Redis のリソースをモニタリングするためのプラグインをいくつか試してみたんですが、個人的には以下のものが気に入りました。bpineau/redis-munin · GitHub https://github.com/bpineau/redis-munin気に入った理由としては シェルスクリプト製なの…
Apache の ab コマンド(Apache Bench) ってリクエストヘッダ指定できたんですね。 これで Host ヘッダ送ってやると、DNS や /etc/hosts を設定してなくても VirtualHost に対して負荷テストをかけることができます。 $ ab -H 'Host: akishin.example.com' -n…
redis-rb では Sharding のアルゴリズムとしてコンシステント・ハッシュ法が使われています。 コンシステント・ハッシュ法でサーバごとのキーの偏りを減らす為の仮想ノードという仕組みがあるのですが、redis-rb を使う場合に仮想ノードの数をどうやって指定…
Apache でいうところの「graceful restart」的な機能が Redis には無いのかを調べてみたのですが、どうやらそういった機能そのものは無いようでした。 では Redis の場合はサービスを無停止でバージョンアップなどを行い、プロセスを再起動するにはどうした…
Redis の Sharding は現状クライアントサイド、つまりライブラリ依存で実現されています。 ここでは Ruby と Java のライブラリで実際に Sharding を試してみました。 redis-rb redis/redis-rb · GitHub https://github.com/redis/redis-rbRuby から Redis …
ちょっと使う必要があったので、Redis の最新版の RPM を作成してみました。環境は CentOS 6.3 です。まずは RPM の作成に必要な rpmbuild、rpmdevtools をインストールします。 # yum install -y rpm-build rpmdevtools 次に RPM 作成用のユーザを作成して …
タイトル通りですが、ちょっと古いコードの検証環境が欲しかったので、開発環境として使用している Ubuntu に rbenv で Ruby の 1.8.6 系をインストールしようとしたところ、予想外にハマって時間を取られたのでまとめておきます。環境は Ubuntu 12.10(32bit…
elasticsearch だと簡単に clustering が出来るということなので、実際に試してみました。 環境は CentOS 6.3、elasticsearch 0.20.5 です。まずはダウンロードして展開します。 # wget https://download.elasticsearch.org/elasticsearch/elasticsearch/ela…
前回インストールした elasticsearch で日本語形態素解析器 Kuromoji を使ってみます。 環境は CentOS 6.3、elasticsearch 0.20.5 です。elasticsearch はプラグインで機能を拡張できるようです。 利用可能なプラグインは公式サイトの以下のページにまとめら…
elasticsearch は Apache Solr と同じく Apache Lucene を使用した全文検索エンジンです。 REST ベースの API を備え、curl コマンドだけで操作できるなどの使いやすさが特徴とのことです。 詳しくは こちら や こちら の資料を読んでみてください。今回は C…
tmux + tmuxinator + rbenv の環境で rbenv local を設定しても指定した Ruby が使われない、という現象が発生。 調べてみると環境変数 RBENV_VERSION が設定されているため、rbenv がそちらを見てしまう事が原因のようでした。しかし RBENV_VERSION を設定…
Ruby 2.0.0-p0 がリリースされましたね。 ということで、早速インストールして Passenger で Rails の簡単なサンプルアプリを動かすところまでやってみました。環境は CentOS 6.3 x86_64 です。 準備 まずは必要なパッケージをインストールします。 README …
このところ CheckInstall の挙動についていろいろと調べていました。 検証に際して使用していた 64bit 版 CentOS での導入方法を整理しておきます。確認した環境は CentOS 5.9 x86_64 ですが、CentOS 6 系でもほぼ同じ方法でいけると思います。また、事前に …
今更といえば今更なのですが、Rails 2.x で作ったアプリケーションを Rails 3.2 に移行しました。ただ、該当アプリケーションでは認証プラグインとして restful-authentication を採用していたため、そのままでは 3.2 で動かす事はできません。 単純に Devis…
Linux サーバでの「Too many open files」エラー対策について調べたのでまとめてみました。 確認した OS は CentOS 5.9 と CentOS 6.3 です。「Too many open files」は Linux でプロセスが開けるファイルディスクリプタの上限に達してしまうと発生するエラ…
作業ミスの予防として手元の開発環境から本番環境の MySQL への接続を禁止したくなったのですが、他で使っていたりするのでサーバ側でポートを閉じたりは出来そうにありません。ということで、取りあえずクライアント側で iptables を使って本番サーバの特定…
このところ「インストールしてみた」的な事ばかり書いていて、あまり深く突っ込んでない感じがなんだか情けないと自分でも思いますが、懲りずに今回もインストールしてみた系です。今回は こちら の記事で紹介されていた、Rails 製のオープンソースの Gist …
MySQLのインストール方法が進化していた! - sakaikの日々雑感〜(T)編 http://d.hatena.ne.jp/sakaik/20130205/mysql5_6_installこちらの記事を読んだら使ってみたくなったので、 MySQL 5.6 を CentOS 6.3(x86_64) にインストールしてみました。 手順もほぼ…