タグ

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

  • 変化点検出エンジン

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ※春に行った京都の玄武岩 さて、久々の研究報告です。 NECさんの開発している変化点検出エンジン「ChangeFinder」を、プログラムで実装してみました。 「ChangeFinder」は、これまでの従来の手法による変化点検出にかかる計算コストを大幅に削減した独自のアルゴリズムによって開発されています。 データマイニングの観点から、外れ値と変化点を区別して、変化点を検出することに成功しています。 このように、変化点と外れ値は同一のアルゴリズム内で扱うのは難しいとされてきた中で、計算量を削減した上で同一に扱えるというのは、かなり画期的な手法です。 それでは、実験的にデータを発生させたりすることで、適当な時系列データを作成し、どの程度の精度と計

    変化点検出エンジン
    defiant
    defiant 2016/08/05
  • mrubyでカジュアルにLinuxのプロセスをサスペンドしてみよう

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 子育てと家事にいそしんでいてあまり研究ができていない松です。こんばんは。 今日はmrubyからLinux上で動いているプロセスをサスペンドしてイメージとして保存し、サーバ再起動後や任意のタイミングでサスペンドしたタイミングのプロセスを復帰させてみましょう。 そのために、mruby-criuというmrubyのモジュールを作りました。これはCRIUという技術を使っていて、上記のようなプロセスのサスペンドが可能になります。 今回は簡単なプロセスサスペンドの例を紹介します。 カウンタをインクリメントするプロセスを起動 まずは以下のように1秒毎にsleepしながらカウンタをインクリメントして表示する簡単なスクリプトを用意します。 [program l

    mrubyでカジュアルにLinuxのプロセスをサスペンドしてみよう
    defiant
    defiant 2016/05/04
  • Gitのコミット単位で動的にDockerイメージをデプロイするプロキシサーバpool

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Gitのコミット単位で動的にDockerイメージをデプロイするプロキシサーバpoolというソフトウェアがあります。 poolとは poolは、WebアプリとDockerfileをGitで管理している場合に、コミットidをサブドメインとして( http://<commit-id>.pool.dev/ )poolにアクセスするだけで、そのGitレポジトリのコミット時の状態でWebアプリのDockerイメージをデプロイし、Webアプリのポートへとリバースプロキシして、Webアプリのレスポンスを返します。もちろん、コミットidをキーに複数の状態にどんどんアクセスできます。(mod_mrubyのユースケースを調査していてたまたま見つけました)。 このp

    Gitのコミット単位で動的にDockerイメージをデプロイするプロキシサーバpool
  • Docker HubとGitHubを連携させてmod_mruby実行環境をDockerで簡単にデプロイ

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Docker Hub公開のアナウンスがあったので、早速Docker HubとGitHubを連携させてmod_mrubyの実行環境をDockerイメージとして作った上で、それをMac上のVagrantで動くCoreOS内のDocker環境にデプロイしてみました。 エントリではmod_mrubyとしていますがここは重要ではなく、自身が開発しているGitHubのアプリケーションに置き換えて読んで頂けると、便利さが見えてくるかと思います。 試してみると、非常に簡単にDockerイメージを作成できた上に、迅速にmod_mrubyの軽量な実行環境をデプロイできたので、その流れを簡単に紹介したいと思います。 Docker Hubにアカウントを作ってGit

    Docker HubとGitHubを連携させてmod_mruby実行環境をDockerで簡単にデプロイ
  • 人間とウェブの未来 - OSvのような環境でもサクっと動くmrubyのWebサーバ作った

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 OSvがとても面白いので色々いじっていると、結果的にmruby-simplehttpserverというWebサーバをmrubyで動かすためのmrubyモジュールができてしまいました。 これは、OSvのようにライブラリをがんがん入れられないような環境でも、とりあえずSocketとIOがあれば動くシンプルなWebサーバを動かすためのmrubyモジュールです。 そもそもOSvって何?という方はこの辺りを見るか、syuu1228さんに聞くのが良いと思います。簡単に言うと、これからの時代、ハイパーバイザにがんがん仮想マシンをデプロイする際に、その仮想マシンにリッチなOSがあまり必要ないケースって結構あって(例えばmemcachedだけが動いているVMと

    人間とウェブの未来 - OSvのような環境でもサクっと動くmrubyのWebサーバ作った
  • Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)

    数年前になんとなく面白がって書いてた「Linuxインフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)」というのが、昔の資料をあさってると出てきて、意外と面白かったので少しだけ手を加えて(古い情報とかあったので)公開しようと思います。 意外とリアルなものがあって懐かしい気分になりました。過去に書いた以下の記事もどうぞ参考にして下さい。 「Linuxエンジニアを目指して入社一年目にやって役にたったと思う事」 「Linuxエンジニアを辞めて大学院に入学しました」 追記: 設問1があまりによくないので、@tagomorisさんのアドバイスを頂きつつ変更しました。1を消して3を追加しています。ありがとうございます! 2000台以上のサーバー運用経験はありますか? サーバやネットワーク機器のキッティング経験はありますか? サーバやネットワーク機器の交換を現地のデータセンター職員に

    Linux系インフラエンジニア3年目のスキルを見抜く50の質問(ホスティングの場合)
    defiant
    defiant 2013/11/12
  • 人間とウェブの未来 - リクエスト単位でApacheのリソースを制御するためのmrubyを使った制御DSLコードの紹介

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 IOT研究会やコンテナ勉強会で発表した内容を制御コード例を交えて具体的なリソース制御の書き方を紹介したいと思います。 詳しい内容は上の行のエントリへのリンクを見て頂くとして、簡単にまとめると、Apacheへのリクエスト単位でCPUやDISK I/O等のコンピュータリソースを制御しようという話になります。今回はその仕組(mod_mrubycgroupを制御)の導入から具体的な制御DSLコードのサンプルを紹介します。 導入 導入はこれまでに何度も紹介していた内容とかぶるのですが、mod_mrubyのインストールと同様です。まずはgithubからmod_mrubyをcloneして、mod_mrubyディレクトリにあるbuild_config.rb

    人間とウェブの未来 - リクエスト単位でApacheのリソースを制御するためのmrubyを使った制御DSLコードの紹介
    defiant
    defiant 2013/11/08
    すばらしい
  • 「コンテナ型仮想化の情報交換会@東京」で発表してきた

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 ということで、先日「コンテナ型仮想化の情報交換会@東京」に参加して発表もしてきました。元々、主催者の加藤さんは僕が尊敬するエンジニアの1人でもあり、何かお手伝いできると良いなと思っていて、発表のお誘いを受けた時はとてもうれしく思いました。また、今回はTwitter上ではそれなりにお話している人達にも沢山あえるということで、バーチャルな世界から初めて東京に出ていくという意味で恥ずかしくもワクワクするような勉強会でした。発表個々の感想はこれから続くであろう参加者の皆様の参加エントリに期待して、このエントリには勉強会全体の感想を書き綴ろうと思います。 @matsumotory さんの周囲をペパボの面々 がぐるっと取り囲んでいる — ito hiro

    「コンテナ型仮想化の情報交換会@東京」で発表してきた
  • 「リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ」という話を発表してきた

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 昨日、「リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ」という新しい研究内容を情報処理学会のインターネットと運用技術(IOT)研究会で発表してきました。 (4)リクエスト単位で仮想的にコンピュータリソースを分離するWebサーバのリソース制御アーキテクチャ◎松亮介,岡部寿男(京都大学) #ipsjiot pic.twitter.com/NhfLL1mgtZ — Naoto MATSUMOTO (@naoto_matsumoto) September 27, 2013 この研究会は、研究者だけでなくエンジニアの皆さんにとっても面白い内容が沢山聞くことのできる研究会なので、学術系問わず参加されることをおす

    「リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ」という話を発表してきた
  • http://blog.matsumoto-r.jp/files/IPSJ-IOT13023004.pdf

  • 大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善について書いた論文公開

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 @jj1bdxさんに「このような運用論文を誰でも読める形で」「情報処理学会や信学会の論文誌掲載論文は、論文誌に掲載された後であれば、著者がWeb上で公開するのに制限はない」という情報を頂き、別に公開しない理由もないので、大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善という内容で書いた論文を公開したいと思います。 僕が会社にいた時、ApacheのVirtualHost環境でレンサバを構築するというのは既にセキュリティ・運用性・パフォーマンスにおいて色々と問題がある事は10年以上前から分かっており、別の方法で共有環境を構築していました。 ある時、VirtualHostで共有環境を真面目に組むとどうなるか、という議論を元

    大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善について書いた論文公開
  • ext3ファイルシステムとファイルの削除・復元について

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 研究の一環でext3ファイルシステムのファイル管理方法や、ファイルを削除した時の復元について色々調べたので、それを忘れないように記事にしておこうと思います。 はじめに 今回はext3ファイルシステムについて調査してみました。僕はLinuxでファイルを扱う前提の研究をしているし、大規模環境でのファイルの処理はとても重要だと思っています。 また、ファイルシステムについて理解を深めておく事で、今後新たなネタにならないか等も考えています。現在はext4やBtrfs等の調査が進んでいますが、改めて基に戻ってext3について調査しました。 まずは、分かりやすいようにext3ファイルシステムでファイルを削除した場合に、どのようにファイル復元ができるのかを

    ext3ファイルシステムとファイルの削除・復元について
  • Apache 2.4系でのモダンなアクセス制御の書き方

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 これまでのApache2.2系以前でのアクセス制御の書き方は賛否両論でした。僕はあまり好きじゃありませんでした。 過去のアクセス制御に関しては、以下の記事がとてもわかりやすくまとめられていると思います。 こせきの技術日記 – Apacheのアクセス制御をちゃんと理解する。 ここで、以下のように言及されています。 こんなバッドノウハウ、当はどうでもいいと思う。Apache 3.0では、かっこいいDSL(VCL)で書けるようにする構想があるらしいのでがんばってほしい。 ということで、2.4系ではDSLとはいかないまでも、Require*というディレクティブを使ったモダンな書き方ができるようになったので、それを2.2系以前のアクセス制御の記述と比

    Apache 2.4系でのモダンなアクセス制御の書き方
  • Linuxで3万(10万)プロセスを同時に起動させてみた

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 といっても、きちんとした検証をしたわけではないので、あくまで「こういう環境でこういう事をやるとこうなる」という参考程度のものと理解してい頂ければ幸いです。 Linux上でプロセスは同時に何個起動できるのか 数年前にC10K問題が流行りました。これは、簡単に言うと、万のオーダーでプロセスを立ち上げる事になると、現状のOSではそれを想定した設計になっていないためまともに動かなくなる、といった問題でした。 だったら、「10万プロセス位を同時に立ち上げてみて、どうなるか試してみようぜ!」と思い、会社のエンジニアと一緒に試してみました。検証環境は、メモリ48GでCPUはHyperThreading込で24コアです。そこで動いていたOSはDebianでL

    Linuxで3万(10万)プロセスを同時に起動させてみた
    defiant
    defiant 2013/04/26
    linux kernel
  • mod_spdyから学ぶSPDYとストリーム並列処理の実装

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 HTTP関連の研究をしているので、そろそろ古い技術を詰めるばかりではなく(これはこれでとても大事な事なのですが)、新しい技術についても調べておきたいところです。 ということで、僕のSPDYに関する現状の理解を、mod_spdyに関する情報を元にまとめておきたいと思います。 SPDY概要 SPDYの概要を表す図としては、下記が良く用いられます。 TLS上にのせたSPDYストリーム上でHTTPやWebSocketを扱うプロトコルで、特徴としては、以下の4つがあげられます。 ストリームの並列化 フレームレイヤーやヘッダーの圧縮 リクエストの優先処理 サーバからのリソースプッシュ HTTP/2.0についても、SPDYを元に仕様が検討されています。では

    mod_spdyから学ぶSPDYとストリーム並列処理の実装
    defiant
    defiant 2013/04/25
  • mod_mrubyでモジュール型PHPもsuEXEC

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 mod_mrubyでsuEXECのようなアクセス制御を実装できるようにしました。 しかも、CGIだけでなくモジュール型のPHPやmod_perl等、所謂DSOも簡単にsuEXECのようにサーバプロセスと権限を分離して実行することができます。 以下に、実装例を紹介します。 mod_mrubyで実装してみる mod_mrubyのビルドで、組み込んでおいた方が良いmrbgemを自動で組み込んでビルドしてくれるbuildスクリプトを作りました。mod_mrubyを簡単に試したいという方は是非使ってみてください。 [program lang=’bash’ escaped=’true’] git clone git://github.com/matsum

    mod_mrubyでモジュール型PHPもsuEXEC
    defiant
    defiant 2013/02/18
  • mruby-cgroupを書いてみたがかなり便利な件

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 Linux KernelのControl Group機能によって、プロセスの様々なリソース管理を行うcgroupをmrubyから呼び出せるようにしました。 それをmruby-cgroupと呼ぶことにします。 これがなかなか素晴らしくて、C言語で書いたプログラムにmrubyを組み込むことで、そのC言語で書かれたホストプログラムをとても簡単にリソース管理できてしまいます。 使い方 mrbgemsとして作っているので、mruby-cgroupのREADMEに従ってbuild_config.rbにgitのURLを書くと簡単にrakeでlibmruby.aに組み込めます。 現状は、CPUとIOリソースの管理の機能のみですが、cgroupのコンテキストの

    mruby-cgroupを書いてみたがかなり便利な件
  • 僕が考える最強の超高集積型Webホスティングシステム!

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 これまでの記事を振り返って、まとめの意味でも、現状僕が考えうる最強の高集積型Webホスティングシステムの設計を忘れないうちに書いておこうと思います。これらは夢のような話ではなく、現実的にAmazonEC2上にプロトタイプとして作ってもいいなぁ、と思っていたりします。 最強の超高集積型Webホスティングシステム!とは ホスティングシステムということで、ホストをかりる側がどういうコンテンツを使うのか分からないので、できるだけ自由度の高いシステムを考えた時は、やはりベースソフトウェアはApacheが良いのではと思います。また、超高集積にする事でハードウェアのコストを下げ、超低価格を実現し、かつ、セキュアで運用性が高く高機能なシステムを目指します。

  • mod_mrubyとApache(Nginx)の関係を図示してみた

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 今回は、言葉だけだと非常に分かり難いmod_mrubyの役割を図示してみました。 このエントリを読んだ後にでも、「なぜApacheにmrubyを組み込もうと思ったか」を読むと色々理解が深まるかもしれません。 ApacheとApacheモジュールの関係を図示 まずは、ApacheとApacheモジュールの関係は以下のようになります。 皆さんご存知の通り、ApacheコアにApache APIがかぶさっていて,Apacheモジュールを組み込んでいく仕組みです。 では、mod_mrubyだとどういう図になるのでしょうか。 ApacheもApacheモジュールとmod_mrubyの関係を図示 このように、mod_mrubyでmrubyスクリプトの実装

    mod_mrubyとApache(Nginx)の関係を図示してみた
  • Apache内部の情報をダンプするモジュール mod_request_dumper

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 最近は論文を書いてばっかりなので、コーディングを忘れないようにちょっとしたApacheモジュールを作ってました。 まずは機能から このモジュールの名前は、mod_request_dumperとしました。 mod_request_dumper機能は、Apache内部がリクエストからレスポンスを返すまでに持つrequest_rec構造体(中に含まれるserver_recやconn_recも含む)の中身を、各種フックのタイミングでDumpするモジュールです。Dumpの仕方は、JSON形式に構造体の主要なデータをシリアライズして任意のファイルに出力します。 (追記:2012/05/22) また、CustomLogのようなパイプログ形式の記述を行うこと

    Apache内部の情報をダンプするモジュール mod_request_dumper