タグ

ブックマーク / hb.matsumoto-r.jp (15)

  • 高速にリモートホストのポートがListenしているかを調べる - 人間とウェブの未来

    hb.matsumoto-r.jp 以下のエントリは一部誤認が含まれていたので、上記エントリにその旨をまとめましたので御覧ください。 とある事情でミドルウェア上から高速にリモートホストのポートのListenチェックをしたくなりました。ローカルホストのポートであれば、/procやnetlinkなどを使って素早くチェックする方法がありますが、今回は対象がリモートホストなのでソケットでなんとかする必要があります。 そこで、誰もがまず思いつくのは、connect()システムコールによってリモートホストのポートに接続しにいって、connectできればOK、できなければNGと判定する方法があり得るでしょう。(高負荷時に接続できないパターンはListenしていないと判定してよい) そこで一旦、最低限socket()システムコールとconnect()システムコールで接続する時のパケットをtcpdumpで眺

    高速にリモートホストのポートがListenしているかを調べる - 人間とウェブの未来
    key_amb
    key_amb 2017/02/14
    nmapとの差異が気になる
  • FastContainerアーキテクチャ構想 - 人間とウェブの未来

    追記:この記事へのコメントとして、この記事以上に内容の趣旨を端的かつ完璧に表しているコメントがありましたので、まずはそれを紹介しつつ、引き続き呼んで頂けると幸いです。 FaaS的だけど「アプリ側の構成も基盤側に合わせて変えるべき」路線なFaaSに対し「アプリは従来のままでもちゃんと動くよう基盤側が頑張るべき」という基盤側の矜持を感じる by takahashim FastContainerアーキテクチャ構想 - 人間とウェブの未来 FaaS的だけど「アプリ側の構成も基盤側に合わせて変えるべき」路線なFaaSに対し「アプリは従来のままでもちゃんと動くよう基盤側が頑張るべき」という基盤側の矜持を感じる2016/11/13 18:25 b.hatena.ne.jp 素晴らしいまとめの一言です。それがまさに構想に至った意図でございます。僕もこんな趣旨をかけるようになりたいです。上記の的確なコメン

    FastContainerアーキテクチャ構想 - 人間とウェブの未来
    key_amb
    key_amb 2016/11/12
    FastCGI から FastContainer へ
  • PHPが動くApacheのコンテナ環境をhaconiwaで1万個動かそうとしてみた - 人間とウェブの未来

    RubyKaigiに行くとにサインを求められるすごいエンジニアが書いたhaconiwaというmruby製のコンテナエンジン(コンテナ環境構築の基盤ツール)があるのですが、少し試してみようと思って、とりあえず1サーバ上に1万コンテナぐらい動かそうとしてみました。久々に今回は自分の作ったOSSではなく、OSSの検証レポート的な記事になります。 haconiwaは僕の好きなOSSの一つで、それはなぜかと言うと、 haconiwaでコンテナを作る際に、haconiwa実行環境にはコンテナの要素機能が全て入っている必要はない 必要なコンテナの要素機能を簡単に組み合わせて、自分が実現したいコンテナ、あるいは、それに準ずる環境を作れる haconiwaによるコンテナ定義をRubyのDSLで表現でき、動的な設定や組み合わせの設定を簡単にかける ということができるからです。その特性から、CentOS6のよ

    PHPが動くApacheのコンテナ環境をhaconiwaで1万個動かそうとしてみた - 人間とウェブの未来
    key_amb
    key_amb 2016/11/08
    なんとなく「なめらかなシステム」とも相性がよさそうな
  • Pmilter: Programmable Mail Filter Serverを作った - 人間とウェブの未来

    Pmilterというサーバソフトウェアを作りました。 github.com PmilterはProgrammable Mail Filterの略で、SMTPサーバ(送信や受信)とmilterプロトコルで通信し、SMTPサーバの送受信の振る舞いをRubyでコントロールできるサーバソフトウェアです。 これまでにも、milter managerやRubyのgemを使ってmilterサーバを作るといった素晴らしいソフトウェアがありました。ですが、今回僕がフルスクラッチで作りたかった理由としては、 とにかくインストールや設定がシンプルで運用しやすいサーバソフトウェアにしたい ミドルウェアとして振る舞いを設定する感覚でRubyで制御する事に専念したい 依存ライブラリを減らしワンバイナリでサーバに配置できるようにしたい 設定変更に再起動することなくRubyを変更するだけで振る舞いを変えられるようにしたい

    Pmilter: Programmable Mail Filter Serverを作った - 人間とウェブの未来
    key_amb
    key_amb 2016/11/03
  • MacOSX上でLinuxとWindowsとOSXで動くmrubyバイナリを簡単にクロスコンパイルできるmrbgem作った - 人間とウェブの未来

    ペパボ社内では、mrubyを使う機運が高まってきています。 誰よりも早い学習速度であっというまにmrubyを理解してしまったあんちぽさんや、CRubyだけでなくmrubyもマスターしてまさに真のRubyistになられたしばたさんと共に色々とmrubyの今後について議論しており、その中でこのタイトルのような事が簡単にできるとよいなーという話になったので作ってみました。 ペパボではクライアントマシンとしてMacを使っている事が多いので、Mac上でRubyのコード(あるいはCのコードと組み合わせて)をmrubyを介して簡単にLinuxWindows上で動くバイナリとしてクロスコンパイルできるといいよね~cliやtestにもいいよね~となりました。 github.com 使い方はGitHubのREADMEの通りで、以下のサイトから事前にlinuxやwin32のクロスコンパイラをMacにインストー

    MacOSX上でLinuxとWindowsとOSXで動くmrubyバイナリを簡単にクロスコンパイルできるmrbgem作った - 人間とウェブの未来
    key_amb
    key_amb 2016/09/29
    1年5ヶ月前だけど、これは素晴らしい
  • CPU使用率100%のWebサーバをOSのチューニングだけでCPU使用率20%まで改善する - 人間とウェブの未来

    こんばんは、 @matsumotoryです。 hb.matsumoto-r.jp 上記エントリにおいて、プロセスの大量メモリ確保に伴うページテーブルサイズとベージテーブルエントリ数の肥大化によるcloneやexecveの性能劣化とCPU使用時間の専有問題、および、それらの解決方法についてシステムコールレベルで確認しました。 そこで今回は、システムコールやそのカーネル内部の処理の性能、というよりは、より実践的な環境であるApache httpdとmod_cgiを用いて、phpinfo()を実行するだけのCGIに対してベンチマークをかけた時にどれぐらいCPUのidleが空くか、システムCPUの使用量が変わるかを、前回示した解決方法の1つであるHugePagesを使うかどうかの観点で比較してみましょう。 特定条件下のWebサーバ環境のシステムCPUに起因する高負荷問題から、システムコールやカーネ

    CPU使用率100%のWebサーバをOSのチューニングだけでCPU使用率20%まで改善する - 人間とウェブの未来
    key_amb
    key_amb 2016/07/23
  • 特定条件下のclone(2)を4倍速くする - 人間とウェブの未来

    とあるサーバで妙にシステムCPUの使用率が高い現象が置きておりました。 そこで、まずはざっくりとperf topでプロファイルをとってみると、以下のようになっていました。 22.38% [kernel] [k] copy_pte_range 18.44% [kernel] [k] zap_pte_range 11.13% [kernel] [k] change_pte_range 3.58% [kernel] [k] page_fault 3.32% [kernel] [k] page_remove_rmap また、各プロセスのstraceを眺めていると、cloneで0.05秒とかなり時間がかかっているようです。これだと単純計算で1コアで秒間20回のcloneでコア100%占有してしまう程度の非常に低速な処理しかできないことになります。 sudo strace -T -o/dev/stdo

    特定条件下のclone(2)を4倍速くする - 人間とウェブの未来
    key_amb
    key_amb 2016/07/14
    なるほど。
  • エンジニアが技術力を高めるもう一つの理由 - はてな・ペパボ技術大会を経て - 人間とウェブの未来

    はてなさんと共催で行った「はてな・ペパボ技術大会@京都」と「ペパボ・はてな技術大会@福岡」が無事終わりました。 http://developer.hatenastaff.com/entry/2016/06/21/131302 ペパボ社内では、はてなサービスとその技術力の高さのファンが多く、はてなさんと一緒にこんな技術イベントできるなんて!!と喜んでいる人たちも沢山いましたし、僕自身もご一緒できてとても嬉しかったです。技術大会後の打ち上げも含めて、すごく盛り上がったしとにかく最高でめちゃくちゃ楽しかったです。 id:y_uukiさんをはじめ、はてなさんの若手エンジニアのスキルは圧倒的に高く、id:ichirin2501さん、id:masayoshiさん、id:taketo957さん、そして、技術大会で諸々沢山調整してくださった、id:wtatsuruさんとid:tomomiiさん、座談会をモ

    エンジニアが技術力を高めるもう一つの理由 - はてな・ペパボ技術大会を経て - 人間とウェブの未来
    key_amb
    key_amb 2016/07/12
    こういうの、いいな。
  • IPSJ-ONE 2016で登壇してきた - 確実に時代は変わってきている #ipsjone - 人間とウェブの未来

    先日、慶応義塾大学で開催された情報処理学会全国大会のトリのビッグイベントであるIPSJ-ONE2016で登壇してきました。 IPSJ-ONEとは、 IPSJ-ONEは、時流に乗る日の若手トップ研究者19名によるライトニングトーク形式の登壇を俯瞰することで、 今後の情報社会に向けての研究動向を広く一般の人々に発信するために企画されました。 今、最先端研究を知ることは、ビジネスや学生の進路決定、メディア戦略などに繋がります。 「IPSJ-ONE」では、そうした最先端研究を一流の研究者による平易な解説で聞くことができます。 情報処理学会では、現在39分野の研究会にて各分野の専門家たちが日々議論を深めています。 今回も昨年に引き続き、各研究会による推薦、IPSJ-ONE企画・実施委員会による審査により、分野を超えたインパクトを有する19名の気鋭の研究者を招待いたしました。 それぞれ約5分の持ち時

    IPSJ-ONE 2016で登壇してきた - 確実に時代は変わってきている #ipsjone - 人間とウェブの未来
    key_amb
    key_amb 2016/03/16
  • mrubyでHTTP/2の画像変換サーバを作った - 人間とウェブの未来

    この記事は、mruby advent calendar 2015の16日目の記事です。 画像やstaticコンテンツ配信系はHTTP/2が有利な状況が幾つかあるので、ついでにHTTP/2を喋る画像変換サーバのプロトタイプをmrubyで作ってみました。ベースはもちろんtrusterdです。なんていったってmrubyのHTTP/2サーバですからね!! 最近また開発を再開しておりまして、昔はh2oやnghttp2のベンチマークに一緒に比較対象として入れてもらったりしていたのですが、しばらく離れているうちに皆さん先へ先へと行ってしまわれたので、また追いつけるようにセッセと勉強しながら実装しだしております。 github.com その他、trusterdについてはこの辺とか、 qiita.com この辺を見ていただくと良いかと思います。 hb.matsumoto-r.jp trusterdのビルド

    mrubyでHTTP/2の画像変換サーバを作った - 人間とウェブの未来
    key_amb
    key_amb 2015/12/16
    trusterd
  • H2Oのmruby拡張が実用的になってきた件 - 人間とウェブの未来

    H2Oにmruby拡張の提案を行いmergeされてから幾つかのPRを経て、少しずつ実用的になってきました。 github.com 今日は簡単にその使い方を紹介しようと思います。 h2o_mrubyを有効化したh2oをビルド h2o_mrubyを有効化してビルドするのは簡単で、OSのライブラリ環境(/usr/lib/以下とか)にlibmruby.a等のmrubyライブラリがある状態で、 cmake -DWITH_MRUBY=ON . make h2o するだけで、h2o_mrubyが有効化されたh2oバイナリがカレントにビルドされます。簡単ですね。 またこの記事も参考にすると良いかもしれません。 qiita.com 使えるメソッド mod_mrubyやngx_mruby程メソッドはまだ充実していませんが、少しずつ使えるものを実装しています。また、mod_mrubyやngx_mrubyとの互換

    H2Oのmruby拡張が実用的になってきた件 - 人間とウェブの未来
    key_amb
    key_amb 2015/07/22
  • h2o_mrubyがh2o本家にマージされました - 人間とウェブの未来

    hb.matsumoto-r.jp 先日、h2oの勉強がてら独自モジュールとして、h2o_mrubyというモジュールの開発をはじめてみました。所謂mod_mrubyやngx_mrubyのように、Webサーバの内部処理をmrubyでコントロールするためのモジュールです。そうこうしていると、h2oの作者の id:kazuhooku さんが、以下のようにツイートされていました。 h2o組み込みの言語を選ぶなら、個人的にはmruby>>luaだし、ビルドまわりがきれいにまとまるならmergeしちゃいたい— Kazuho Oku (@kazuho) 2015, 6月 23 おお、これは家へ取り込んで頂ける可能性もあるな!!??と思い、急遽実装を家用に書き直して、数日前にPRを出しました。 github.com そして、幾つかの修正やテストの実装を経て、今日の朝方ついにh2o家に無事マージされま

    h2o_mrubyがh2o本家にマージされました - 人間とウェブの未来
    key_amb
    key_amb 2015/06/30
    素晴らしい。
  • h2o_mruby v0.0.1をリリースしてみた - 人間とウェブの未来

    そういえば今から3年前に、 blog.matsumoto-r.jp blog.matsumoto-r.jp などなどの実装を開始しました。色々と懐かしいですね。そして時代は進み.... H2Oは言わずと知れた id:kazuhooku さんが中心となって開発されているWebサーバですが、そのモジュール実装はどうなっているのかなーと思い、調査ついでにh2o_mrubyをざっと実装してみました。 h2o-mrubyがのぞまれる— Kazuho Oku (@kazuho) 2015, 6月 9 一旦は、ApacheのDSOのような形で実装する方法がパッと見思いつかなかったので、まずはH2Oをフォークしてhandlerモジュールとして実装し、一部体も弄る形で実装してみました。 github.com 今日は家の用事で出社が昼飯時になってしまい、ちょうどそのタイミングでやってみようかな?と思っちゃっ

    h2o_mruby v0.0.1をリリースしてみた - 人間とウェブの未来
    key_amb
    key_amb 2015/06/23
    素晴らしい。
  • mrubyでファイルシステムを隔離してリソースを分離しIPも割り当てられるmruby-virtualingを書いた - 人間とウェブの未来

    Kazuho's Weblog: jailing - chroot jailを構築・運用するためのスクリプトを書いた virtuald + ipalias + cgroup + これで快適に「そこそこ隔離したサービス環境」作っていきましょー / “Kazuho's Weblog: jailing - chroot jailを構築・運用するためのス…” http://t.co/aweVwa9kDX— MATSUMOTO, Ryosuke (@matsumotory) 2015, 5月 14 まずは昨日サクッとこういうのを作られたkazuhoさんのjailingを見ていて、こういうのやっぱり面白いなー素晴らしいなーと思いつつ、そういえば僕もmrubyでこういうの書くとか宣言していたなーというの思い出しました。 mruby-cgroup、mruby-capability、mruby-criuがで

    mrubyでファイルシステムを隔離してリソースを分離しIPも割り当てられるmruby-virtualingを書いた - 人間とウェブの未来
  • Webオペレーションエンジニアのアウトプットと開発力 - 人間とウェブの未来

    という話を、社内のインフラチーム向けにしました。 Webオペレーションエンジニアの大体のイメージについてはこちらを御覧ください。書評なのですが、とてもイメージしやすいエントリになっていると思います。 blog.riywo.com スライドの中でも一応定義していて、3行にまとめると Webサービスの運用 OS・ミドルウェアの運用 運用技術の調査・開発 を主な業務として行っているエンジニアを指すことにします。 入社して間もないので、僕の人格の好き嫌いや人間関係みたいなものがまだできていない頃の発表ということで、素直に内容を聞くことができる、という意味でいい機会だったと思います。 この内容は、社内だけでなく社外のWebオペレーションエンジニアや、所謂、インフラエンジニアと呼ばれている人でも同じような悩みを抱えている人がいるかもしれないと思っていて、内容的にも公開しても良い話なので公開しようと思い

    Webオペレーションエンジニアのアウトプットと開発力 - 人間とウェブの未来
    key_amb
    key_amb 2015/04/20
    もっとアウトプットしたい。/ Webオペレーションエンジニアのアウトプットと開発力 - 人間とウェブの未来 :
  • 1