タグ

Serverとrubyに関するclavierのブックマーク (25)

  • PumaのコードからみるソケットへのノンブロッキングI/O - Qiita

    これは何? ソケットにおけるノンブロッキングI/OについてPumaのコードを絡めて調べてみたまとめです。 PumaRubyで書かれたOSSのWebサーバーです。 ソケットに限らずノンブロッキングI/Oという言葉をよく聞きます。ですがイマイチなにを意味しているのかわからなかったので調べてみました。 ブロッキングI/Oとは ユーザーモードからシステムコールをカーネルに発行し、結果が帰ってくるまでに待ちが発生するI/O処理のことです。ファイル全般に言えることであり、ソケットもファイルなので当然ブロッキング発生します。 ソケットにおけるブロッキングI/Oは以下のようなものがあります。 accept(2)でlistenキューからソケットを取り出すときに接続が確立されていない場合(TCPハンドシェイク中など)は確立されるまでブロックされる。 ソケットに対してread(2)やwrite(2)を実行する

    PumaのコードからみるソケットへのノンブロッキングI/O - Qiita
  • サーバー側から見たRack - Qiita

    Rackについて調べても、「ではまず簡単なRackアプリケーションを作ってみましょう。config.ruを開いて……」みたいな資料しか出てこなくて、サーバー側からみたRackインターフェースがどうなってるかという記事が全然見当たらなかった。んだけど、何やら外国の人のブログでちょうど望んでる内容のものがあったのでざっくり翻訳と紹介します(許可とった)。言い回しとかで解釈わかんないところがあって飛ばしたりしているので文とニュアンスだいぶ変わってしまっているかもなのですが、まあ最低限の内容が伝われば……ご了承ください。 元記事:http://www.blrice.net/blog/2015/05/31/make-your-own-rack-server/ 自分のRackサーバーを作ってみよう Ruby触ってたら必然Rackについて学ぶよね。RailsとかSinatraとかRubyのWAFの心臓

    サーバー側から見たRack - Qiita
  • Shibuya.rbに参加してPumaやUnicornの話してきました #shibuyarb - 月曜日までに考えておきます

    昨日、Shibuya.rbに参加してきました。 場所は渋谷のクラウドワークスさんでした。巨大リラックマが2体、滑り台っぽいスペースに詰まってました。良い。 弊社も渋谷なので、参加しやすくて捗りますね。 自分が話したこと PumaやUnicornについて最近ハマったことや知見などを書いていきました。GTAで油断したら噛み付かれて死んでたあのこわいネコがPumaだったなんて驚きですよ。 他の方の話など @sue445 さんのitamae + Serverspecでのテスト駆動インフラの話( http://www.slideshare.net/sue445/shibuyarb-testdriveninfrastructure )や、@onigra_ さんの外部依存APIDockerとして起動してテストする話( https://speakerdeck.com/onigra/zui-jin-yat

    Shibuya.rbに参加してPumaやUnicornの話してきました #shibuyarb - 月曜日までに考えておきます
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 橋本商会 » Rackミドルウェアの作り方を勉強した

    今スイスにいる。 行きの飛行機の中での勉強用にこのページを保存しておいて、Rack middlewareの作り方を学んだ。 第25回 Rackとは何か(3)ミドルウェアのすすめ:Ruby Freaks Lounge|gihyo.jp … 技術評論社 というのもSinatra::RocketIOをRack::RocketIOにしたいからなんだけど、Rack Hijack APIがよくわからない。(hijackについてはそのうち書く) ソースコードはgithubに全部置いてある。 github.com/shokai/rack-plugin-study Sinatra/Rails/Padrino等のRuby製webアプリケーションフレームワークと、 webrick/thin/mongrel/unicorn等などのRuby製webサーバーを接続するしくみがRackです。 Webアプリフレームワーク

    橋本商会 » Rackミドルウェアの作り方を勉強した
  • RailsのDeploy環境+運用を考慮したサーバー構築 - Qiita

    Ruby on RailsでDev環境は使ったことあるけど、test・prod環境を考慮した環境構築をしたことがない人にお勧めの内容です。 サーバー構成図 サーバーの役割 リバースプロキシサーバー(ホスト名:rp01) ロードバランサ機能を使ってWEBサーバ二台に処理を振り分け、アクセスを1台のサーバーに集中させない WEBサーバーを外部から隠せることでセキュリティ面の向上 WEBサーバー(web01、web02) webサーバーを2台用意することでアクセスが1つのサーバーに集中しないため、レスポンスを早くできる マスターDBサーバー(db01m) DB内容をもう1台のDBサーバー(スレーブ)へリアルタイムにコピーし、障害でマスターが停止したときはスレーブに切り替える スレーブDBサーバー(db01s) 読み込み専用のサーバー。書き込みをしない分レスポンスが早くなる マスターの内容を常にコ

    RailsのDeploy環境+運用を考慮したサーバー構築 - Qiita
  • Server::Starterに対応するとはどういうことか - limitusus’s diary

    StarletやStarmanと組み合わせてよく使われているServer::Starterですが、普段気にしないような部分を読む機会があったのでメモ。 Server::Starterは --port (TCP) や --path (Unix Domain Socket) を渡すとこれでlisten(2)して起動するworkerに引き渡してくれる。 これはfork(2)とexec(2)によってファイルディスクリプタを引き継ぐことにより実現されているが、ファイルディスクリプタそのものをどのように引き渡しているのか、という問題。 exec(2)により実行バイナリは差し換わってしまうので、プログラム中の変数により引き継ぐことはできない。 Server::Starterではこれを環境変数SERVER_STARTER_PORTにより実現している。 おおよそ以下のような感じ。 FD = integer

    Server::Starterに対応するとはどういうことか - limitusus’s diary
  • About COOKPAD (2013-11)

    2013年11月にHAL東京・大阪・名古屋でやってきた講義の資料。 クックパッドの働き方や技術の話です。

    About COOKPAD (2013-11)
  • ISUCON3予選に参加してきました。 #isucon - from scratch

    チームNoderとして @hokaccha さんと @hakobera さんの二人と一緒にISUCON3の予選に参加してきました!! 当日やったことと反省点をまとめていきます。 結果どうだったか。 9286点で無事上位20位以内(全体で17位くらいかな?)に入り、(暫定ですが)予選を突破したチームとして名前が載りました!! 序 awsのami-idがweb画面から見つからず、完全にテンパイ。 この辺りは hakobera さんが詳しいので完全にお任せ。僕とhokacchaさんはその時まだ何もできないので、aws-cliツールを入れてみたりしてた。 30-40分後くらいには環境を構築してくれたので、sshでログイン。 初期アプリ(perl)に対してひとまずベンチを実行。大体1000位のスコアだった。 そこからひとまずnode.jsに切り替える。 Node.js版が全然動かない。。 Node.

    ISUCON3予選に参加してきました。 #isucon - from scratch
  • ISUCON予選にPHP実装で参加して3位になりましたーやったことなどまとめ

    by @dekokun on 2013/10/06 20:15 Tagged as: contest. 今日(10/6)はISUCON3の予選2日目に参加しました。 「予選落ちだろうなー」と思いながら挑んだら、意外と3位(暫定。運営の方が提出したAMIを起動しベンチマーク実行し、提出したスコアと比べてあまりにもスコアが低かった場合は失格となる)で選進出が決まったので嬉しくてブログ書いてます。 スコアは14379で、予選1日目と合わせて9位。 「チームたこやき」という名前で後輩2人と参加しました。 題名に「PHP実装で」と入れたのは、ディスられがちなPHP書きへのエールを込めてです。 基的にやってたこと 以下、恒常的にやってたこと一覧と、その効果を。 xhprofでのプロファイリング 効果:圧倒的 facebook謹製プロファイリングツール、xhprof様でございます session_s

    ISUCON予選にPHP実装で参加して3位になりましたーやったことなどまとめ
  • isucon3 の予選に参加しました #isucon - soh335 memo

    オンライン予選 二日目の結果 & 暫定版の選出場チーム発表 : ISUCON公式Blog 運営の皆様ありがとうございました。 @kenjiskywalker さん , @hisaichi5518 と参加しました。 結果的には暫定的に2日合わせて 20 位以内に入れたというところでしょうか。メモ代わりに何をやったかとか。 開始前 案の定 hisaichi5518 から反応がなく遅刻確定。kenjiskywalker さんは腹痛をしてました。 開始直後 kenjiskywalker さんに aws 回りはお願いし、出来上がった所でとりあえず関係ありそうな所を git 化し push, clone 出来るようにしました。 共有レポジトリを 0 から作るのは毎回どこかでハマるのでそろそろどうにかしたいなーと思う所。 レギュレーションを読み、フムンとなりながら、スコアを出す負荷ツールの workl

  • #isucon 3 予選まとめ

    ISUCON 3 の予選、土曜の方に参加していました。 まず、とても楽しませていただきました。運営の方おつかれさまでした! 結果の方は、悔しいことに 1 日目 5 位以内には残れなかったのだけれど、 暫定予選通過チームを除いた 2 日通しのランキングで 3 位に残る事はできたので、 一応 (暫定) なんとか戦には出場できる様子。 で、予選で何をしたかだけれど、問題については 公式の解説記事 を見てもらうとして以下に残します。 尚、使用言語は Ruby でした。スコアは 10813.4。 チーム “白金動物園” mirakui, rosylilly, sorah パンダ、ハト、(>ヮ<)/ ? 白金台方面から参加 mirakuiと私がopsもしていた (記憶) 最終的に手を加えた事 middlewares, app Ruby 2.1.0dev, redis が入った httpd Apach

  • unicornとnginxの組み合わせ(パフォーマンス改善) | simBlog

    2012年2月14日 22:06 - CATEGORY: nginx, Rails, unicorn 前回からunicornとnginxとの組み合わせが微妙に遅いと言い続けていたが、ちゃんと調べたら、 nginxの設定がモロ間違っていた。nginx.confの設定において、ネットの情報をそのまま 鵜呑みにした状態でコピペしたのが間違いだった。それで遅かったようだ。m(_ _)m 前々回のnginx.confの設定において、以下のとおりとしていたが、 upstream unicorn_app { server unix:/tmp/unicorn.sock; } 正しくは以下のとおり、upstreamにつづく設定値は、アプリケーションのアドレス名にしなければ いけなかった。あわせて、ソケット名もあわせておいた。 upstream simsolrails { server unix:/tmp/s

  • ohaiを使ってサーバの情報をプログラムで扱おう

    斎藤です。こんにちは。 今日は、Chefをインストールすると共に入るohaiを用いて、サーバの情報をプログラムで扱ってみます。 ※ohaiは6.16(github版)を用いています ohaiとは もともと、Chef Client/Chef Soloが実行環境の情報を取得するためのライブラリです。ただ、単独でもライブラリを使用したり、コマンドを実行する事で、Chefと同様に情報を利用する事ができます。ポイントは、外部コマンドの結果を内部でパースしてプログラムで扱いやすい形にできます。まさに、パーサーライブラリですね。 ohaiがなければ、コマンドでサーバの環境(例えば"df")の情報を取得しようとする時、コマンドの結果を取得した後に「お手製」のパーサーでプログラム内で活用できるようにしなければなりません。これが、"df"のほうに簡単なものならまだしも、"ip addr show"のような設定

    ohaiを使ってサーバの情報をプログラムで扱おう
  • ssig33.com - Web アプリケーションを配布する

    Web アプリケーションを配布するにあたっていろいろとあって、 PHP スクリプトが圧縮されていたり、 Railsプロジェクトディレクトリが圧縮されてたり、プロジェクトディレクトリを git clone してこいだとか、だいたいそんな感じじゃないかと思います。 これは実際使用者にしてみればめんどくさくて、そのプラットフォーム毎の作法というのを覚えなければいけなかったりする。それくらい覚えろやカスといえばまあそうなんですが、そこをなんとかしたい。 ところで僕は Ruby を使って Web アプリケーションを作りますので、 gem install web-application とかで一発でアプリケーションをインストールできて、 web-application コマンドとかを叩けば起動できるとかだと嬉しいなあと思っていました。 というわけでそういうの作りました https://github

  • chef-xbuild を作った! - Studio3104::BLOG.new

    サーバーのセットアップは perlbrew とかじゃなくてよくね? という時のライフハック - blog.64p.org 番環境でのperl/ruby/nodeのセットアップ - tagomorisのメモ置き場 番環境で使う LightweightLanguages を **env とかで入れるのはアレだよね。な流れに乗ってそういう環境を作る Chef の Cookbook を書きました。 作ったとは言っても、tagomoris/xbuild · GitHub をそのまま cookbook に書き換えた、という感じです。 chef-xbuild https://github.com/studio3104/chef-xbuild お気軽にお試しいただけます。 Ruby 実行環境があり、Virtualbox がインストールされていれば、簡単に試していただくことが出来ますのでご興味を持たれま

    chef-xbuild を作った! - Studio3104::BLOG.new
  • 「さくらのVPS申し込み」から「RubyをインストールしてReVIEWを動かす」まで - 結城浩のはてな日記

    「さくらのVPS申し込み」から「RubyをインストールしてReVIEWを動かす」までの自分用メモです。 なお、以下の手順やコマンドラインの多くは、ドットインストールさんの無料講座「さくらのVPSの基礎 (全21回) 」を見て書いています(もしも問題があるようなら、すぐに削除します)。細かい設定で省いている部分がありますので、正確なところはこの講座をごらんください。この講座はたいへんわかりやすくてすばらしいです!3分単位でさくさく学べます。 前提 Windows 7, PuTTY, msysgit, Firefox, Mail ssh, ssh-keygen, scpはmsysgitのものを使った さくらのVPS申し込み Firefox: http://vps.sakura.ad.jp/ さくらのVPS 1G Mail: お申込受付完了のお知らせ Mail: [さくらのVPS] 仮登録完了の

    「さくらのVPS申し込み」から「RubyをインストールしてReVIEWを動かす」まで - 結城浩のはてな日記
  • 最小手順のVMイメージの作り方(LVM 編) - Gosuke Miyashita

    開発や検証で利用する VM は、最初はディスクサイズを小さくして、後から必要に応じて大きくする、といったことをよくやるので、最小手順のVMイメージの作り方 のスクリプトを、/ と swap を LVM にするように変えてみた。 あとはディストリビューションを選択できるようにとか、指定したホスト名を設定する、とかもやりたいけど、シェルスクリプトは大きくなってくるとメンテナンス厳しいので、Ruby で書き直す。

  • 簡単に手元でHTTPのファイルサーバ立てる方法 - かみぽわーる

    .zshrcにstatic_httpdって関数つくってる。 dotfiles/.zshrc at master · kamipo/dotfiles · GitHub function static_httpd { if type plackup > /dev/null; then plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root => ".")->to_app' elif type ruby > /dev/null; then if ruby -v | grep -qm1 'ruby 2\.'; then ruby -run -e httpd -- --port=5000 . else ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port => 5000, :D

    簡単に手元でHTTPのファイルサーバ立てる方法 - かみぽわーる
  • Unicorn についての知りたい情報のすべて (翻訳版) - Engine Yard Blog JP | Engine Yard Blog JP

    記事は英語版ブログで2010年5月18日に公開された記事の翻訳版です。 Engine Yard のお客様や開発者の友人の多くが Unicorn を愛用し、推奨しているので、これについて兼ねてから勉強したいと思ってました。そんな矢先に、幸いにもその学習機会が自然と訪れました。最初は無料のリソースをいろいろと見ながら疑問を解決しようとしましたが、思ったより難しく、結局は大元のソースに当たることにしました。 まず、十分な時間をかけて Unicorn の README ファイルを熟読しました。このファイルには総合情報が網羅されていますが、読み終えた後でも疑問が解決しなかったので、すべてまとめて Unicorn の開発チームに E メールで送ってみました。有難いことに、返信には私の全質問に対する答えが詳しく書かれていました。そのおかげで内情に通じることができたので、この素晴らしいリソースを皆さんと