タグ

ブックマーク / blog.matsumoto-r.jp (8)

  • mrubyのirepテーブルを再利用する事でmod_mrubyのメモリ消費量を改善

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 昨日、内部フラグメンテーション耐性の高いjemallocを利用することで、mod_mrubyのメモリ使用量を半分に減らす事ができました。 しかし、なお、mod_mrubyを組み込んだサーバプロセスに継続してRubyスクリプトを処理させると、メモリ消費量が単調増加してしまうという問題が残っていました。 そこで、単調増加してしまう原因を突き止め、メモリ消費量増加をさらに改善することができました。 メモリ消費量が単調増加する原因 1リクエスト処理するたびにmalloc利用で400バイト程度のメモリが増加している原因を追った所、mrb_generate_code()後にメモリ消費量が増加している事を突き止めました。 そこで、mrb_generate_

    mrubyのirepテーブルを再利用する事でmod_mrubyのメモリ消費量を改善
  • 人間とウェブの未来 - mrubyの拡張モジュールであるmrbgemのテンプレートを自動で生成するmrbgem作った

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 エントリはmruby advent calendar 2013 18日目の記事になります。 17日目はtsahara@githubさんによる「mruby で C 言語の構造体をラップしたオブジェクトを作る正しい方法」という素晴らしい記事でした。今回の話題はこの話にも少し絡むので、まるで内容を見透かされていた気分です。 はじめに ところで、僕がadvent calendarにmrubyネタを書くなら何が良いかなぁと考えていたのですが、おそらくmrubyに関する細かいネタは多くの人が書くだろうと思い、自分らしいネタを書こうと思っていました。そこでふと、mrubyが公開後、自分は大量にmrbgemとよばれるmrubyの拡張モジュールを書いてきた事

    人間とウェブの未来 - mrubyの拡張モジュールであるmrbgemのテンプレートを自動で生成するmrbgem作った
  • Apache 2.4.1のmod_luaでApacheに介入する(mod_rewriteの終焉?)

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といいつつも、そこまで大したことはしていない。 luaという高速に動作する組み込み系のスクリプト言語で遊んでみたかったのと、それだったmod_luaで遊んでみればいいなと思っただけである。で、実際にmod_luaをコンパイルして遊んでみた。コンパイルオプションは以下。 ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --enable-modules=all --enable-mods-shared=all --enable-mpms-shared='prefork worker event' -

    Apache 2.4.1のmod_luaでApacheに介入する(mod_rewriteの終焉?)
    yyamano
    yyamano 2016/02/23
  • 人間とウェブの未来 - ngx_mrubyの紹介 ならびに nginx+mruby+Redisによる動的なリバースプロキシの実装案

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ようやくngx_mrubyでもmod_mrubyのように動的なリバースプロキシ設定ができるようになりました。タイトルは完全に@hibomaさんによる「lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案」をパク … inspireしたものになっています。 今回の工夫点としては、 ngxin内部の変数をうまく使う redisとのセッションはnginx起動時に一度だけ行なって、そのオブジェクトを使いまわす proxy_passを使って汎用的な設定にする の3点です。 1に関しては、前回の「ngx_mrubynginxの内部変数を操作する」で紹介しました。 2に関しては、リクエスト

    人間とウェブの未来 - ngx_mrubyの紹介 ならびに nginx+mruby+Redisによる動的なリバースプロキシの実装案
  • chmodやchownのreferenceオプションを知った時は目から鱗だった話

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 元々ホスティング会社で働いていたので、その特性上ownerやpermissionを色々と弄る事が多く、数年前の社会人時代にchmodやchownをもっと楽に使えないかなぁと調べた時に目から鱗だったのがchmodやchownのreferenceオプションでした。 今回は単にreferenceオプション楽ですよね、という記事なのでご存知の方は退屈な記事だと思いますが、まわりに聞いてみた所意外と知られていなかったりしたので、ブログエントリにしておこうと思います。 referenceオプションを使うと、任意のファイルを指定することで、変更対象のownerやpermissionを指定したファイルと同じ設定にすることができます。 例えば、/bin/pin

    chmodやchownのreferenceオプションを知った時は目から鱗だった話
    yyamano
    yyamano 2014/06/24
    “sudo chown --reference=/bin/ping myprogram”
  • Apacheのmod_rewriteをmod_mrubyによって無くす事ができるか | 人間とウェブの未来

    Apacheのmod_rewriteをmod_mrubyによって無くすことを考えた時に、現状mod_rewriteでやれることをmod_mrubyに置き換えるとどうなるのかを検証・考察してみました。 なぜかというと、mod_rewriteで困っているような呟きをいくつか見て、以下のように思ったからです。 apacheでrewriteが面倒な人はmod_mrubyやmod_luaを使っちゃっても良い気がするなー。誰かがやり出すとどんどんやり出しそう。性能劣化も少ないし。 — MATSUMOTO, Ryosukeさん (@matsumotory) 10月 21, 2012 以前こんな記事「Apache 2.4.1のmod_luaでApacheに介入する(mod_rewriteの終焉?)」を書いたのですが、これも深く関連しています。現状、いったいmod_mrubyはどこまでmod_rewrite

    yyamano
    yyamano 2012/11/01
  • ApacheとNginxの性能比較でevent_mpmの本気を見た

    はい、これは僕がいつも良く見るApacheとNginxの性能差に見えます。大体、ApacheはNginxの75%程度の性能に落ち着きます。数十バイトの静的コンテンツに対するリクエスト処理はNginxの得意分野だと思っていたので、大体こんなものです。 そこで、真面目にevent_mpmのチューニングを行ってみました。で、幾度となくベンチを試した結果導き出した、静的コンテンツに対する同時接続数100程度に対して最高のパフォーマンスを示すevent_mpmの設定は以下のようになりました。 [program lang=’apache’ escaped=’true’] StartServers 4 MinSpareThreads 4 MaxSpareThreads 4 ThreadsPerChild 2 MaxRequestWorkers 2 MaxConnectionsPerChild 0 [/p

    ApacheとNginxの性能比較でevent_mpmの本気を見た
  • なぜApacheにmrubyを組み込もうと思ったか

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 なぜWebサーバソフトウェアであるApacheやNginx等にmrubyを組み込もうと思ったのかを整理しておきたいと思いました。 目的はWebサーバの開発支援 Webサーバの開発支援をしたい という壮大な目的が以前からありました。 それがどういうことかは後述するとして、ここでいうWebサーバの開発とは、Webサーバの内部機能拡張を指しています。それを行うにはどうしたら良いかをまず簡単に説明したいと思います。(スクラッチでWebサーバを1から実装するのもよいですが、ここではスコープ外とします) 例えば、Apacheを例にあげると、Webサーバの内部機能拡張はモジュール単位で組み込むという方法が取られています。ApacheやNginxはWebサー

    なぜApacheにmrubyを組み込もうと思ったか
  • 1