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

  • OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来

    今回は、Webサーバの実装に依存することなく、OSレイヤでWebサーバソフトウェアが起動時に実行するであろうシステムコールを監視して、そのタイミングでプロセスをイメージ化する方法(PoC)について紹介します。 その前に、まずは前提の一致ということで、僕は以前から、Webサーバプロセスの性質について、プロアクティブ性とリアクティブ性という分類について述べてきました。 プロアクティブ性とリアクティブ性について簡単にまとめると、以下のようになります。 Webサーバ機能のプロアクティブ性とリアクティブ性 突発的なアクセス集中のような変化に耐えうるシステムを構築するためには,負荷の状態に基いて適切なインスタンスの数を決定し,必要以上にコンピュータリソースを使用しないように設計することも重要である. 単一のサーバに高集積にホストが収容可能であり,ホスト単位でのリソース管理を適切に行いながら,セキュリテ

    OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来
  • なぜエンジニアの僕は論文を読み論文を書くのか - 人間とウェブの未来

    という話を新卒エンジニア研修座学の最終回で発表しました。 昨日ちょうど、ペパボ研究所の2017年の実績をまとめており、まだまだ国際化は足りていないものの、だいぶ論文を書いたりしているなぁと改めて思いました。 rand.pepabo.com 実績はサマリーは以下の通りになります。博士学位論文を書きながらも、所長を含めて研究員4名でできたばかりの研究所で、雑誌や書籍やエンジニア技術カンファレンスもこなしながらよくここまで書けたなと振り返って思います。 博士学位論文 1 ジャーナル論文集招待論文 1 ジャーナル論文 1(予定) 査読付き論文 1 査読なしの研究報告 6 口頭発表 20(後2追加予定) 学会誌・商業誌解説等 4 助成金・研究費等 2 論文を読んだり書いたりするペパボ研究所において、大企業が持つ研究所とは違い、なぜWebサービスに関わる企業がなぜ研究所を持ち、論文

    なぜエンジニアの僕は論文を読み論文を書くのか - 人間とウェブの未来
  • 2017年の抱負 - 僕がOSSを作り続ける理由 - 人間とウェブの未来

    確かに、自分が欲しいもの・他者が必要とするものを作りたい、とか、承認欲求を満たしたい、エンジニア・研究者のアピールとして、とかあるんだけど、それらはやっぱりあくまで付加的な理由であって、僕にとっての一番の理由であり根源的な理由は、「面白いから」である。ただそれだけ。誰にも邪魔されない唯一の感情でもある。 コードを書いたり、コードを書くために腕組んで考えたり、他者からのフィードバックを経て試行錯誤しながらOSSを育てていったりすることがとにかく面白いと感じるし、その感覚がこれまでずっと長い間続いている。だからこそ、夜遅くなっても、眠くてしんどくても、なかなかすぐには手を止められないし、明日の用事と向き合いながら、あと少し、4時間寝たらいける、あと少し、と引き伸ばし続け、いずれ朝を迎えてしまう。きっと僕は死ぬまでOSSを書き続けるだろうと思う。 コードを書くことは、きっかけは業務だったり、自分

    2017年の抱負 - 僕がOSSを作り続ける理由 - 人間とウェブの未来
  • エンジニア個人が自主的に成長するように促す - エンジニア組織の自律的成長 - 人間とウェブの未来

    この記事は、Pepabo Managers Advent Calendar 2016の3日目の記事です。2日目は、弊社チーフエンジニアhsbtさんの「マネージャが仕事の仕組みを作る」でした。 僕自身は、エンジニア専門職の主席研究員兼シニア・プリンシパルエンジニアではありますが、特にペパボ福岡のエンジニア組織を現場でまとめる人間として、エンジニア組織を成長させる中で個々のエンジニアの成長をサポートしているという意味では、マネージメントに関する活動も兼ねております。 しばしば、インターネットサービスの高度化と複雑化の速度が早過ぎるため、グランドデザインができない、人が多過ぎても成立しない、少な過ぎても難しい、とういうような類のサービスを作り上げないといけない状況があります。その際に、厳密過ぎない役割を持たせ、それぞれが横断的にそれぞれのスタイルで、まるで、攻殻機動隊の世界におけるスタンドプレー

    エンジニア個人が自主的に成長するように促す - エンジニア組織の自律的成長 - 人間とウェブの未来
  • インターネットを作りたい - 人間とウェブの未来

    インターネットを作り上げることができる、そんなコミュニティを作りたいとずっと思っている。 インターネットの創成期において、産学両方向の技術と知見を同時に兼ね備え、両方向からのアプローチができるとにかくすごい人達によってインターネットは作り上げられ整備されてきた。それらを新しい世代で引き継ぎ、あの時のように、インターネットの未来に必要な価値を圧倒的速度で作り上げていく若い世代に僕はなりたいと思っているし、そういうコミュニティを作りたいと思っている。 社会活動的観点では、僕が企業だけでなくアカデミアにおいても活動を行い、産学両方向から得られる知識や考え方を学んでいるのはそのためであるし、新規性が重要視される世界での研究開発のアプローチ、実効性が重要視され自らが提供する価値を最大化するためのアプローチ、などなど、各領域における考え方や取り組み方はとても勉強になる。また、昨今では、企業はアカデミア

    インターネットを作りたい - 人間とウェブの未来
  • 特定条件下の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倍速くする - 人間とウェブの未来
  • エンジニアが技術力を高めるもう一つの理由 - はてな・ペパボ技術大会を経て - 人間とウェブの未来

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

    エンジニアが技術力を高めるもう一つの理由 - はてな・ペパボ技術大会を経て - 人間とウェブの未来
  • カーネルスレッドのループと停止をカーネルモジュールで実装 - 人間とウェブの未来

    以前Linuxのカーネルスレッドがループして暴走したときに、カーネルスレッドの扱いを調べていた時期があって、それの簡単な動きを再現するべくカーネルモジュールを作りました。まずは、自力で試したい人は以下を見ずに試すと良いでしょう。 まずはカーネルスレッドをループさせる カーネルスレッドは、所謂ps上で[kthread_dayo]みたいな感じで見えるプロセスの事です。厳密にはユーザランドのプロセスも定期的にカーネル側の処理が走るときは[]付けになったりするのですが、簡単には上記のような状態とします。これをユーザランドのプログラミングで作ることは難しいのですが、カーネルモジュールを使えばすごく簡単につくれます。 まずは以下のようにカーネルスレッドをループさせるコードを書きます。 #include <linux/module.h> #include <linux/sched.h> #include

    カーネルスレッドのループと停止をカーネルモジュールで実装 - 人間とウェブの未来
  • 技術的アウトプットが必要な時代に求められる心構えと社外発表の頻度を増やす事の副次的効果 - 人間とウェブの未来

    この話については、僕が専門としているWebサービス関連の業界におけるお話だと思って下さい。ただ個人的には、もう少し広範囲でも適用できる話なのではないかなとも思っています。 ということで、早速アウトプットすることのメリットから簡単に今の現状をまとめて今後エンジニアはどういう心構えで取り組んでいけば良いか、その中で、社外発表することのメリット、その社外発表の頻度を高める事の副次的効果についてまとめていきます。 アウトプットすることのメリット アウトプットする事やOSS化する事のメリットは、自分も含めて最近随分と語られるようになってきております。ここではそれについてあまり詳細に語る事は省略して、メリットを箇条書きでまとめると、 自分の技術が整理され、振り返りも容易になる フィードバックが得られる 自分の技術とその他社外のエンジニア技術を足しあわせての技術検討(開発)が可能になる 自社だけでなく

    技術的アウトプットが必要な時代に求められる心構えと社外発表の頻度を増やす事の副次的効果 - 人間とウェブの未来
  • 技術者が研究者のように論文を書くメリットはあるか - 人間とウェブの未来

    一度大学・大学院を修了した後に、研究職以外に就職した技術者は論文を書かなくなる事がほとんどだと思います。 僕は、一度インターネットのウェブサービスに関する企業で技術者をした後に、大学院に入りなおして同様の分野で論文を書き、現在再度技術者をやっているわけですが、技術者でも論文を書くメリットが ある と思っています。 以降でメリットについて述べますが、これらのメリットをまとめて手軽に享受できるツールって他にあんまりないんじゃないか(僕が思いつかないだけかも)と思ったので、この記事を書くに至りました。 というわけで、それを簡単にまとめます。 技術者が論文を書くメリット まずはざっと箇条書きします。 自分の考えた技術や既存の技術の調査、比較の試行錯誤を丁度良い分量でまとめられる 良い文章構成になるような書き方の知見が溜まってるので書きやすい 書き方の知見にのっとって文章にまとめることで、頭の中や提

    技術者が研究者のように論文を書くメリットはあるか - 人間とウェブの未来
  • Rubyでabコマンドをプログラマブルに操作できるab-mrubyを業務で使ってみたけどまぁまぁ良かった - 人間とウェブの未来

    1年前ぐらいにab-mrubyという、Rubyでabコマンドをプログラマブルに操作・拡張できるツールを作っていたのですが、それを業務のとある環境で使ってみたところまぁまぁ良かったのでその使い方を紹介しようと思います。 github.com というのも、特定の条件でベンチマークで負荷をかけていくとプロセスがハングするという状況があって、その状況を再現するためにabコマンドでベンチマークをかけていたのですが、abコマンドのオプションがパッと見わかりずらかったり、どのホストのどのパスにベンチマークをかけているかなどをドキュメントで書いていて、 あれ、これRubyのDSLで表現した方がわかりやすくない? と思って、ab-mrubyを作っていたことを思い出し、Rubyで書いてみました。 target_hosts = ["test001.example.jp", "test002.example.jp

    Rubyでabコマンドをプログラマブルに操作できるab-mrubyを業務で使ってみたけどまぁまぁ良かった - 人間とウェブの未来
  • 1