ラベル ruby の投稿を表示しています。 すべての投稿を表示
ラベル ruby の投稿を表示しています。 すべての投稿を表示

2014年7月11日金曜日

knife soloのプロキシー設定 for CentOS 6.5

knife solo prepareがproxy設定で動作した設定値のメモ 環境変数で動作したので環境依存なのかな。 knife.rbで動作しないのが気になる気になる。
動作したのは次の設定

動作環境

環境 CentOS 6.5
Chef 11.14.0.rc.2-1

実行コマンド

knife solo prepare ホスト名

設定ファイル

/etc/environment

設定値

http_proxy="http://ドメインorIPアドレス:ポート番号"
https_proxy="https://ドメインorIPアドレス:ポート番号"

動作しなかった設定


knife.rb
http_proxy "http://ドメインorIPアドレス:ポート番号"
https_proxy "http://ドメインorIPアドレス:ポート番号"
knife[:bootstrap_proxy]="http://ドメインorIPアドレス:ポート番号"

/etc/profile.d/proxy.shにhttp_proxyの環境変数を設定

ソースは追ってないので、原因はまた時間あるときに。

2014年2月24日月曜日

最近気になるPHPフレームワークHelloWord性能比較大会

最近気になっているPHPフレームワークのベンチマークを取得してみました。
サーバやフレームワークなどのチューニングはほとんどしていないので、
結果は、あくまで参考程度としてください。

テスト環境

仮想環境 (1CPU memory 4GB)
PHP 5.5.9 (opcache使用)
NGINX 1.4.5

確認したコマンド※

ab -n 1000 -c 20 http://localhost.local/
※外部からではなく同じサーバで実施しています。

結果


Phalcon 1.2.6


Time taken for tests: 0.523 seconds
Requests per second: 1910.87 [#/sec]

FuelPHP 1.7


Time taken for tests: 1.704 seconds
Requests per second: 586.90 [#/sec]

Laravel 4.1


Time taken for tests: 6.171 seconds
Requests per second: 162.04 [#/sec]

php artisan optimizeで最適化
Time taken for tests: 4.925 seconds
Requests per second: 203.02 [#/sec]

Ruby on Rails 4.0.3 (特別ゲスト)


Time taken for tests: 2.851 seconds
Requests per second: 350.73 [#/sec]

Ruby On Rails4も含めてみました。
環境はPHPとは異なり次のとおりです。
NGINX 1.4.4
Passenger4.0.37
ruby 2.1.0

感想


Phalconが圧倒的な処理速度で1位です。
Laravelと比較すると約11倍以上速いですね。
FuelPHPはLaravel寄りではありますが、まずまずの性能です。

artisanコマンドで最適化されたLaravelでもそれほど大幅には変化がなかった(でもLaravel比だと25%アップ)ので、速度が出ないのは、autoloadが原因ということはなさそうです。
LaravelはIoC Containerというのが得意で、コードがきれいで書きやすいのですが、
それが原因かどうかはわかりませんがパフォーマンス面では他に劣るようです。
今のところPHPでもRailsと同様にパフォーマンスと便利な機能は相反するようですね。
またPhalconが速いのはC言語で実装されたフレームワークの部分だけなのでPHP部分はそんなに変わらないのではないかと思います。
結果はPhalconが目立ちすぎてますが、実際のロジックを実装した状態ではそこまでは差がないのではないかと考えています。
また、PhalconはC言語で実装されているので運用面でトラブルの際の調査も難しくなりそうで、
仕事に使うのはZephirで実装されるバージョン2.0までは様子をみようかと思っています。
Zephirは今後どうなるか気になるところです。
LaravelがZephirで実装されたりとか・・・、今のところその動きはなさそうですが。

Railsは、言語違いますがフルスタックのフレームワークの代表例として参考になるかと思って追加しました。
LaravelとFuelPHPの中間くらいで以前より速くなってますね。
RubyのVMが進化していたり、Rails自体もチューニングが進んでいるのかも。

いずれにせよ、現実的ではないHelloWorld程度の比較なので、
あまりこの結果を鵜呑みにしないようにご注意ください。



2012年3月21日水曜日

Redmine 1.3.2 インストールのちょっとした罠 at さくらのVPS



Redmineには、日頃からよくお世話になっていますが、
インストールをすることってほとんどありませんよね。
でも、たまにインストールすると軽い罠が待っていますw

今回はちょっとした罠をメモしておきます。
次のバージョンの時にも別の罠があるとは思いますが、その時はその時で。

ちなみに、こちらのドキュメントを見てインストールしていますが、
きめ細やかな手順ですよね。すごく助かりますね。


Redmine 1.3をCentOS 6にインストールする手順
http://blog.redmine.jp/articles/redmine-1_3-installation_centos/


次の内容は、「さくらのVPS 512」のCentOS 6.2環境でインストールしました。


  • Apache HTTP Serverが見つからない

  • 初期設定とデータベースのテーブル作成の警告メッセージ

  • メールが送信されない at さくらVPS


Apache HTTP Serverが見つからない


Apache httpdをyumからインストールしている場合は、この問題おこりませんが、
ソースコードからビルドしている場合は、たぶんこの問題に遭遇します。

次のコマンドを実行してもapahceが見つからないので中断するのですが、
passenger-install-apache2-module

この場合は、次の2つの環境変数で場所を教えてあげればいいようです。


export APXS2=/usr/local/apache2/bin/apxs
export PATH=/usr/local/apache2/bin:$PATH
passenger-install-apache2-module
※Apache httpdのインストール先に合わせ変更してください。



初期設定とデータベースのテーブル作成の警告メッセージ


Redmineの初期設定とデータベースのテーブル作成の作業で、次のコマンドを実行します。
rake generate_session_store

下記のメッセージが出力され最後に「Please install RDoc 2.4.2+ to generate documentation.」と言われますが、
Redmineインストールの際は、このメッセージの対応はNGのようです。


/usr/local/ruby-enterprise-1.8.7-2012.02/bin/rake generate_session_store
(in /[インストールディレクトリ]/redmine-1.3.2)
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /[インストールディレクトリ]/redmine-1.3.2/config/../vendor/rails/railties/lib/rails/gem_dependency.rb:21.
NOTE: Gem::SourceIndex#initialize is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#initialize called from /[インストールディレクトリ]/redmine-1.3.2/config/../vendor/rails/railties/lib/rails/vendor_gem_source_index.rb:100.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby-enterprise-1.8.7-2012.02/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby-enterprise-1.8.7-2012.02/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby-enterprise-1.8.7-2012.02/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby-enterprise-1.8.7-2012.02/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby-enterprise-1.8.7-2012.02/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby-enterprise-1.8.7-2012.02/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby-enterprise-1.8.7-2012.02/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.
Gem::SourceIndex#add_spec called from /usr/local/ruby-enterprise-1.8.7-2012.02/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91.
Please install RDoc 2.4.2+ to generate documentation.


対応した方法ですが、gemをダウングレードしました。


gem update --system 1.6.2


これでコマンドが無事通りました。

メールが送信されない at さくらのVPS(2週間おためし無料期間中)


Redmineからメールが送信されないのですが、
「さくらのVPS」の2週間おためし無料期間中は、25番ポートが閉じられているようです。
まあ、お試しなので別の方法にしてみます。
http://sakura.cb-faq.com/faq/public/app/servlet/qadoc?QID=001401

ちなみに「さくらのVPS 512」思ってたよりいいですね。
クラウドもすごく良くなることを願います。




2011年10月7日金曜日

とりあえずruby1.9.2でもインストールしてみるか



環境構築する機会があるので、
rubyをインストールしてみた。

複数バージョンを切り替えられるのが最近の主流
ということでRuby Version Manager (以下rvm)の導入から

ワンライナーのインストールも定番かも。


bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )


参考 http://beginrescueend.com/rvm/install/


追記 事前にインストール済みのモジュール
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel
yum install -y make bzip2 autoconf automake libtool bison
yum install -y iconv-devel
iconvは別途ソースコードからインストール済み


あとはrvmを使って各バージョン毎にインストールする

rvm install 1.8.7-p352
rvm install 1.9.2-p290

環境変数再読み込み
source /etc/profile
→/etc/profile.d/rvm.shがインストールされるため

1.9.2を使う設定
rvm use 1.9.2-p290

パスを確認すると
echo $PATH
/usr/local/rvm/gems/ruby-1.9.2-p290/bin:/usr/local/rvm/gems/ruby-1.9.2-p290@global/bin:/usr/local/rvm/rubies/ruby-1.9.2-p290/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

なるほど。
パスの切り替えで使用するバージョンの切り替えているのか。

インストール済みの確認
ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]

1.8.7も試してみる
rvm use 1.8.7-p352
ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
echo $PATH
/usr/local/rvm/gems/ruby-1.8.7-p352/bin:/usr/local/rvm/gems/ruby-1.8.7-p352@global/bin:/usr/local/rvm/rubies/ruby-1.8.7-p352/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin


------------------------------
ちなみに最初に1.9.2をインストールしようとしたら怒られた

rvm install 1.9.2
ERROR: Error running 'make ', please read /usr/local/rvm/log/ruby-1.9.2-head/make.log
ERROR: There has been an error while running make. Halting the installation.

make.logの内容を抜粋
echo executable host ruby is required. use --with-baseruby option.; false -I. ./tool/compile_prelude.rb ./prelude.rb miniprelude.c
executable host ruby is required. use --with-baseruby option.
make: *** [miniprelude.c] エラー 1

rubyをビルドするためのrubyが必要なんだそうだ。
まじすか!