Ruby Enterprise Editionインストールで性能改善
結論から言いますと、49.3% もメモリ使用率を削減できました!!
以下、技術的な情報になりますので興味がある方だけ読んでください。
VPS環境にRuby Enterprise Edition(version 1.8.7-2009.10)をインストールしました。
VPS上では複数のRailsアプリケーションを動作させています。
最大メモリは十分にある環境なのですが、必要時に割り当てられるメモリなので、一瞬でも枯渇する機会を少なくするために導入しました。
まずは下記サイトよりダウンロード。
http://www.rubyenterpriseedition.com/
# wget http://rubyforge.org/frs/download.php/66162/ruby-enterprise-1.8.7-2009.10.tar.gz
次に展開してインストールです。
# tar zxvf ruby-enterprise-1.8.7-2009.10.tar.gz # cd ruby-enterprise-1.8.7-2009.10 # ./installer ./platform_info.rb:224: warning: Insecure world writable dir /home/kembo in PATH, mode 040777 Welcome to the Ruby Enterprise Edition installer This installer will help you install Ruby Enterprise Edition 1.8.7-2009.10. Don't worry, none of your system files will be touched if you don't want them to, so there is no risk that things will screw up. You can expect this from the installation process: 1. Ruby Enterprise Edition will be compiled and optimized for speed for this system. 2. Ruby on Rails will be installed for Ruby Enterprise Edition. 3. You will learn how to tell Phusion Passenger to use Ruby Enterprise Edition instead of regular Ruby. Press Enter to continue, or Ctrl-C to abort. Checking for required software... * C compiler... found at /usr/bin/gcc * C++ compiler... found at /usr/bin/g++ * The 'make' tool... found at /usr/bin/make * Zlib development headers... found * OpenSSL development headers... found * GNU Readline development headers... found
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Cコンパイラなどのインストールチェック後、インストール先ディレクトリを入力(上記例ではデフォルトのまま)。
インストールが開始されます。
途中次の画面で止まります。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
SQL LightやPostgre SQLを使う場合は指示に従ってインストールしましょう的なメッセージです。
インストールコマンドまで表示されて丁寧ですね。
passengerのインストールも同様ですが、とてもユーザビリティの高いインストーラで関心します。
インストールが成功すると下記画面が表示されます。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
既存のRubyには一切影響を与えないという点と、アンインストール方法(ディレクトリを削除するだけ)が表示されています。
次はpassengerのインストールです。
この作業はインストールしたEnterprise Rubyを使用して行います。
/opt/ruby-enterprise-1.8.7-2009.10/bin/passenger- install-apache2-module
インストール自体は通常のpassengerと同じです。
私の環境の場合はここでエラーとなりました。
省略 virtual memory exhausted: Cannot allocate memory rake aborted! Command failed with status (1): [g++ -Iext -Iext/common -fPIC -DLINUX=2 -D_...] /opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/passenger-2.2.8/Rakefile:172:in `define_common_library_task' (See full trace by running task with --trace)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
virtual memory exhausted: Cannot allocate memory と怒られています。
topコマンド+Shift M(Memory使用量でソート)でメモリの使用状況を確認するとapacheが700MBほど使っていました。
夜間だったこともあり、一時的にapacheを停止して再度チャレンジ。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
やりました。成功です。
次は既存のRuby環境をEnterprise Ruby上にインストールします。
Enterprise RubyとEnterprise Rubyのgemを使います。
# /opt/ruby-enterprise-1.8.7-2009.10/bin/ruby /opt/rruby-enterprise-1.8.7-2009.10/bin/gem install rails -v=2.3.2 --no-ri --no-rdoc Successfully installed activesupport-2.2.2 Successfully installed activerecord-2.2.2 Successfully installed actionpack-2.2.2 Successfully installed actionmailer-2.2.2 Successfully installed activeresource-2.2.2 Successfully installed rails-2.2.2 6 gems installed
全てのgemをインストールする必要があります。
次にapacheの設定です。
次の3行を旧passengerの設定と置き換えます。
# LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/ext/apache2/mod_passenger.so # PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8 # PassengerRuby /usr/local/bin/ruby LoadModule passenger_module /opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/passenger-2.2.8/ext/apache2/mod_passenger.so PassengerRoot /opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/passenger-2.2.8 PassengerRuby /opt/ruby-enterprise-1.8.7-2009.10/bin/ruby
ここまででインストール完了です。
いよいよ性能測定です。
apacheの設定ファイルを再読み込みする前に性能を取得しておきましょう。
性能データの取得にはpassengerのpassenger-memory-statsコマンドを使います。
ちなみに通常のruby版もEnterpirse ruby版もコマンドに違いは無いようです。
私は同じ負荷をかけながら性能データを取得しました。
通常のRuby
3330 16.6 MB 0.4 MB /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/ext/apache2/ApplicationPoolServerExecutable 0 /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.8/bin/passenger-spawn-server /usr/local/bin/ruby /tmp/passenger.31799 3331 44.5 MB 12.6 MB Passenger spawn server 3368 186.2 MB 22.2 MB Passenger ApplicationSpawner: /var/www/location/html/current 3397 186.3 MB 22.3 MB Rails: /var/www/location/html/current 3400 186.2 MB 22.8 MB Rails: /var/www/location/html/current 3404 187.5 MB 74.7 MB Passenger ApplicationSpawner: /var/www/lovechic/html/current 3431 199.8 MB 86.6 MB Rails: /var/www/lovechic/html/current 3433 199.8 MB 86.6 MB Rails: /var/www/lovechic/html/current 3534 189.8 MB 74.9 MB Rails: /var/www/lovechic/html/current 3554 189.8 MB 74.9 MB Rails: /var/www/lovechic/html/current ### Processes: 10 ### Total private dirty RSS: 477.94 MB
Enterprise Ruby
3832 16.6 MB 0.4 MB /opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/passenger-2.2.8/ext/apache2/ApplicationPoolServerExecutable 0 /opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/passenger-2.2.8/bin/passenger-spawn-server /opt/ruby-enterprise-1.8.7-2009.10/bin/ruby /tmp/passenger.31799 3833 107.7 MB 15.5 MB Passenger spawn server 3889 215.9 MB 26.4 MB Passenger ApplicationSpawner: /var/www/location/html/current 3899 217.9 MB 27.9 MB Rails: /var/www/location/html/current 3902 217.9 MB 27.8 MB Rails: /var/www/location/html/current 3912 196.5 MB 22.9 MB Passenger ApplicationSpawner: /var/www/lovechic/html/current 3934 207.7 MB 52.2 MB Rails: /var/www/lovechic/html/current 5133 198.5 MB 23.3 MB Rails: /var/www/lovechic/html/current 5140 198.5 MB 22.9 MB Rails: /var/www/lovechic/html/current 5146 198.5 MB 23.0 MB Rails: /var/www/lovechic/html/current ### Processes: 10 ### Total private dirty RSS: 242.32 MB
通常のRuby:477.94MB
Enterprise Ruby:242.32MB
なんと、49.3%もメモリ使用率が減りました!ものすごい改善率です。
これで処理能力も上がっているというのですから、使わない手はありません。
Enterprise Ruby Editionはruby1.8.7しか出ていませんので、その点はご注意を。
KEMBOのホームページリニューアル
賢房(KEMBO)のホームページをリニューアルしました。
業務の合間に少しずつ作成してきたものですが、ようやくリリースすることができました。
TOP画面、実績(Flash版)、KEMBO社員紹介(Flash版)では、Flashでコンテンツを作成していますが、表示するデータは管理画面から簡単に変更することができます。
変更したデータはRuby on Railsがランダムに動的に作成するXMLをFlashが読み込んで表示します。
このように作ることでFlashを知らない人でも簡単に様々な用途で使うことが出来ます。
Flash版の他に実績、社員紹介はHTML版も用意しています。
HTML版では画像表示に良く使われるlightboxを改造して使っています。
HTML/CSSを読み込むことで、複数の画像を表示できるようにし、テキスト情報も画面右側に表示するようにしました。
一般的にブログなどでは画像の拡大表示に使われることの多いlightboxですが、工夫次第で用途も広がりますね。
RSSリーダー機能も作りました。
外部のブログをRSSで読み込み、ブログを更新することで自動的にページが増えて行く仕組みにしました。
RSS/RDFは様々な企画があり、まだ課題も多いのですが、更新業務を軽減できるこの施策は需要があると思うのでツール化したいところです。
是非一度ご覧になってください!!
http://kembo-net.com
誕生日のお祝い
11/25は私の誕生日でした。
弊社がWEBサイトを制作した和風デザートを楽しめるカフェSakura*Do(桜花堂)で
用意してもらったケーキを囲んでハッピーバースデー(中国語では祝〓生日快乐)を歌ってくれました。
思い返せば会社でケーキを貰ってお祝いしてもらうのは初めてです。
忙しい時や辛い時にメンバーの為にもうひと頑張り、もうひと踏ん張りできる気がします。
また、プレゼントやメッセージをくれた皆さま、ありがとうございます!
ちなみに嫁さんからの誕生日ケーキは、昨年の肉まんタワーシリーズに引き続き、ちらしずしタワーでした(笑)
誰にも見せないで〜と口止めされているので掲載できませんが、4合の米で積み上げられたタワーを食べるのに3日かかりました(笑)
また来年もこうして祝ってもらえるよう、縁を大切に皆と良い関係を保てるように1年間がんばりたいと思います。
佐々木真弥32歳今年もがんばります!
宜しくお願いします!
Ruby on Railsで費用対効果の高いコーポレートサイトを
コーポレートサイトと言えば、下記のような構成が多いと思います。
・会社紹介(沿革、経営理念、精神、経営体制など)
・商品紹介
・ニュース
・実績紹介
・アクセス
・リクルート
・問い合わせ
弊社ではコーポレートサイトもRuby on Railsで作成しています。
理由は、WEB戦略として、営業ツールとして、活用できるサイトにするためです。
コーポレートサイトは企業にとって必要不可欠ですが、うまく活用出来ていない企業が多いように感じます。
作成後にアクセス解析の結果やお客様の声を聞いて、必要な機能を短いリードタイムで提供していくことが大切です。
弊社ではWEB制作を請け負うだけでなく、サーバ管理から運用までをお手伝いさせて頂き、
WEBサイトの費用対効果がプラスになるよう、最後まで関わらせて頂く方針で初めから取り組むようにしています。
制作に限らず運用は大変ですが、お客様向け、お客様の業種向けに最適化されたサイトを完成させていく喜びはひとしおです。
技術的にもお客様向け管理画面から、サイトに表示される内容(例えばニュースならタイトルと内容)を入力して頂くだけで
ニュースサマリ更新、一覧更新、ページ追加、内部リンク追加、RSS配信、アクセス追跡機能追加、メール配信など全て自動で行い、
SEOに強く最少のルーチンワークで最大の効果を狙えるような作りにもできます。
またメールマガジンからWEBページを自動で更新していくことも可能です。
経済が落ち込んでいる今、システム担当者が不在であったり営業に予算が割り当てられないの企業様も多いと思います。
そんな今こそ、営業戦略としてのコーポレートサイトを見直してみてはいかがでしょうか。
googleで「夫」の後にスペースを入れると・・・にあやかって50音でやってみた
googleで「夫」の後にスペースを入れると・・・と巷で騒がれていますが、50音で試してみました。
ちなみに一文字打った後にスペースは入れずに試しています。
あ アマゾン
い イオン
う うみねこのなく頃に
え エコポイント
お お台場 ガンダム
か 価格.com
き 気象庁
く クックパッド
け けいおん
こ 高校野球
さ 酒井法子
し 新型インフルエンザ
す スカイプ
せ セブンイレブン
そ ソフトバンク
た ためしてガッテン
ち 地図
つ ツタヤ
て 天気予報
と トヨタ
な なす レシピ
に にこにこ
ぬ ぬりえ
ね ねんどろいど
の のりかえ案内
は ハローワーク
ひ ひぐらしのなく頃に
ふ フジテレビ
へ ヘタリア
ほ 翻訳
ま マクドナルド
み みずほ銀行
む 無印
め めざましテレビ
も モンスターハンター3
や やふー
ゆ ゆうちょ銀行
よ よみうりランド
ら ららぽーと
り リクナビ
る ルート検索
れ レクサス
ろ 路線
わ ワンピース
ゐ ゐ勢屋
ゑ ヱヴァンゲリヲン新劇場版 破
を をくだ屋技研
ん んじゃめな
いやー疲れました(笑)
最近人気のキーワード順で表示されます。
酒井法子、新型インフルエンザ、ハローワーク、なす レシピ など世間が今何に興味あるかわかって面白いですね。
幾つか知らないキーワードがありました。
ためしてガッテン ・・・NHK総合テレビで放送している生活情報番組
ねんどろいど ・・・粘土で造形されたデフォルメフィギュア
ひぐらしのなく頃に ・・・同人サークルである07th Expansionが製作した同人ゲーム。これを原作とするドラマCD、漫画、アニメなど
ヘタリア ・・・日丸屋秀和による日本の漫画作品。
んじゃめな ・・・んじゃめな本舗 - 同人サークル。 磨伸映一郎 神星記人? 邪武丸 などが在籍する。※ンジャメナはアフリカの国家チャドに実在する首都の名
数年後に振りかえると面白そうです。
livedoor readerについて
私はRSSリーダーにlivedoor readerを使っています。
気に行っている点は、ショートカットキーが豊富で短時間で大量のフィードを読む工夫がされている点です。
キー操作(sで次のフィード、aで前のフィード)を使うと、裏で先読み機能が動作して次のフィードを読んでくれます。
アクセスの遅い中国からは、この機能はとても重要です。
日常的に少しの時間でチェックできるのは個人ブログで20程度、ニュースやはてブ人気エントリー系のフィードで10程度でしょうか。
その中からクリップしておいた5〜10のフィードをさらに深く読むようにしています。
これまで約400フィードを登録してありましたが、飛ばしたいフィードがあると前述の先読み機能が働かないため、思い切って100フィードほどに減らして、ショートカットキーだけで読み進められるようにしました。
特に回線の遅い中国では溜めに溜まったニュースサイトの200エントリを読み込むのに時間がかかるので、このような可能性のあるフィードは休日用と仕分けしました。
整理には時間がかかりましたが、日々のルーチンワークが軽快になったので有意義な時間投資で気分良し!です。
ホームページリニューアル中
今KEMBOホームページをリニューアル中です。
日本のデザイナさんやSEOコンサルさん達の知恵をお借りして制作中です。
先日メンバーの撮影会も行いました。
弊社に隣接しているパートナー会社の撮影スタジオを使用しての撮影だったのですが、被写体になるのは初めての経験でした。
来週はRailsでSEOに強いCMSを作り込む予定です。
管理画面からページを更新すると自動で下記も更新されます。
・sitemap.xml
・RSS配信
・最新記事
・記事一覧
・記事詳細
・タグクラウド
・titleタグ
・descriptionタグ
・リンク
オープンソースのCMSを使えば当たり前の機能かもしれませんが、弊社では全て自前で作りこんでいます。
自前なだけに一歩進んだ(利用者に特化した)プログラムにする予定です!!