タグ

serverに関するkwryのブックマーク (322)

  • 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
    kwry
    kwry 2014/05/07
  • サーバのトラブルシューティングにsysdigが使えそう - $web->{note};

    sysdig とは? Sysdig is open source, system-level exploration: capture system state and activity from a running Linux instance, then save, filter and analyze. Think of it as strace + tcpdump + lsof + awesome sauce. With a little Lua cherry on top. http://www.sysdig.org/ 上に書いてある通り、一言で言うと strace + tcpdump + lsof + α。tcpdumpのように-wで書き出して-rで読み込めるのがありがたい。 高機能過ぎてまだ全然使いこなせてないけど、ぱっと触った感じ使えそうだなと思ったものを紹介。 1. プロ

    サーバのトラブルシューティングにsysdigが使えそう - $web->{note};
    kwry
    kwry 2014/04/08
  • サーバー未経験者がソーシャルゲームを通して知ったサーバーの事

    2014/2/8に行ったゲームサーバ勉強会でのスライドです。 サーバー未経験者がソーシャルゲームを通して知ったサーバーの事。 失敗経験を元に何故今がこうなっているかというのを詰め込みました。 初心者〜中級者向け勉強会だったので、なるべく非エンジニアでもイメージで伝わるようにちょっとだけ心がけてます。

    サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
    kwry
    kwry 2014/02/11
  • シェルスクリプトで自ホストのIPアドレスを得るのにgetentを使う - M.C.P.C. (Mamesibori Creation Plus Communication)

    どこの現場にも秘伝のたれ状態になったシェルスクリプトっていうのがあると思うのですけれども、ここの現場はみんなPHP使いなんでシェルスクリプト触りたくねえ、ていう状態のところに投入された僕が来ました。わしつい最近まで印刷屋さんだったんだけどもわしに任せてしまっていいんだろうか。 で、伝統を守り抜いたシェルスクリプトの中で自ホストに設定されたIPアドレスを得るコードがifconfigをこねくってeth0の所から得ようとしていたのですが、最近のサーバって必ずしもeth0が存在するってわけでもないのでこういう悪い習慣をここで断ち切ることになりました。 シェルスクリプトでIPアドレス得るために、シェルから使える環境変数で何か役立つものねえかなあと思っていたら、当然${HOSTNAME}は鉄板なんで、こいつをgetent hosts に入れてやればいいんでね、ていうアイディア。LinuxとFreeBS

    シェルスクリプトで自ホストのIPアドレスを得るのにgetentを使う - M.C.P.C. (Mamesibori Creation Plus Communication)
  • serverspec インフラ層のテスト項目を考える | Ore no homepage

    最近は担当システムが平和だけど俺が平和じゃない。疲れてる。忘年会の連チャンもきっついトシになっちまった。会社の制度で1週間くらい休みがとれるので、一人で温泉とスノボと開発合宿でもしに北海道にでも行こうかなって思ってる。1月か2月くらいに。 えーと、担当しているサービスにserverspecを導入した。それにあたってテスト項目を考えたので軽くまとめる。もちろんserverspec導入前もサーバ構築後は動作確認というか、テストらしいことはしていたっちゃしていたんだけど、テスト項目をまともに考えたのはこれが初めてかもしれない。serverspecのバージョンは0.13.2である。Rubyは2.0.0。 0. 環境 下記のような環境に導入した。ありふれた構成だと思う。60台くらいの規模。DBはマスタ3台に分割されていて、それぞれにスレーブがn台ぶらさがっている。LBの箱は二つあるが、物理的には1台

  • The Technology behind pixiv Infrastructure

    pixivのインフラを支える技術2013 at Python Developers Festa 2013.11

    The Technology behind pixiv Infrastructure
    kwry
    kwry 2013/12/08
  • Immutable Infrastructure時代のConfiguration Management Toolの要件およびその実装について - Kentaro Kuribayashi's blog

    稿では、"Immutable Infrastructure"時代におけるconfiguration management tool(以下、CMT)の要件およびそれを満たすツールについて議論する。 背景の整理 "Immutable Infrastructure"とは、2013年6月、Trash Your Servers and Burn Your Code: Immutable Infrastructure and Disposable Components - Chad Fowlerにより提唱された概念だ。ある種のプログラミング言語における不変性がプログラムにおける厄介な問題を解決するように、サーバの状態を不変な(正確には、状態を変更しない)ものとすることで、成長し続けるソフトウェアにとって避けられない、時間の経過によりもたらされる種々の問題が、解決可能であるとする。 そもそもどのような

    Immutable Infrastructure時代のConfiguration Management Toolの要件およびその実装について - Kentaro Kuribayashi's blog
  • 今さら聞けない Immutable Infrastructure - 昼メシ物語

    Immutable (不変な) Infrastructure は、サーバを一度セットアップしたら二度と変更を加えないという運用スタイルのことを指します。 クラウド環境では、必要に応じてすぐにサーバを用意し、不要になったら簡単に破棄することができます。Immutable Infrastructure は、このようなクラウドの特性を活かす運用スタイルとして、注目されつつあります。 背景 Immutable Infrastructure が提唱された背景にある技術として、 Auto Scaling や Blue-Green Deployment*1 などがあります。 Auto Scaling Auto Scaling は、負荷に応じて自動的にサーバ台数を増減させる技術で、 AWS では標準で提供されています。常に必要な台数だけ起動していればいいので、コスト削減になるというものです。 Auto S

    今さら聞けない Immutable Infrastructure - 昼メシ物語
    kwry
    kwry 2013/11/26
  • YappoLogs: 2014年に向けた JSON API の実装の方向性と X-JSON-Status 改め X-API-Status header のご提案

    2014年に向けた JSON API の実装の方向性と X-JSON-Status 改め X-API-Status header のご提案 追記 2014/11/20 14:00:00 わりと JSON やら XML やら各種フォーマットで API を運用している環境がある場合に JSON API の時だけ X-JSON-Status にすると XML とかの時と整合性取れないし、 X-XML-Status みたいのを量産するのは困る的なレビューを頂いたので X-JSON-Status をやめて X-API-Status にしました。 へたに JSON に限定するから REST とか JSON-RPC とかいわれるんや! X-API-Status にしたら全部解決したし MessagePack な API でも使い回せるって songmu さん言ってた! XML とかからどうやって引っこ抜

  • How to build a High Performance PSGI/Plack Server

    How to build a High Performance PSGI/Plack Server PSGI/Plack・Monocerosで学ぶ ハイパフォーマンス Webアプリケーションサーバの作り方Read less

    How to build a High Performance PSGI/Plack Server
  • 自動障害回復システム 月読の話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    @ymmt2005 こと山泰宇です。短い夏休みから帰ってきました。 今回は cybozu.com のデータセンターで運用を開始した自動障害回復システム「月読」を紹介します。障害にも色々ありますが、今回紹介するのは仮想マシンのホストサーバーの物理障害を検出して、稼働していた仮想マシンを予備のホストに移動する仕組みです。 月読は、データセンター全域に分散したエージェントが協調動作するピア・ツー・ピア (P2P)システムとして作られています。以下分散システムの話題が多数でてきますが、とても難解というわけではないので、分散システムの入門記事としてお楽しみください。 障害にどう対処するか 障害対応の自動化 設計のポイント エージェント間通信 障害の検出と回復 その他の機能 まとめ 障害にどう対処するか 物理障害対策の基は二重化(多重化)です。アプリケーションサーバーのようにデータを持たないサーバ

    自動障害回復システム 月読の話 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Big Sky :: 分散環境情報サーバ etcd を使った設定共有の活用

    etcd って何と聞かれた場合、一言で言ってしまえば zookeeper なんだけど Documentation · CoreOS etcd etcd is a highly-available key value store for shared configuration and service discovery. http://coreos.com/docs/etcd/ coreos/etcd - GitHub https://github.com/coreos/etcd etcd の良い所は curl で使える様な簡単な API SSL Cert 認証もオプションとして使える ベンチマークで 1000s of writes/s per instance を出せるくらい速い Raft を使って正確に、確実に分散する という感じらしい。作ってるのは CoreOS。 etcd はキーを

    Big Sky :: 分散環境情報サーバ etcd を使った設定共有の活用
    kwry
    kwry 2013/08/21
  • 最近のサーバの抽象化について - As a Futurist...

    学者でもなんでもない現場のいちエンジニアの感想です。しかも、どれもちゃんと使ったことないので、聞きかじりをまとめたメモ書きなので嘘が入ってますが、興味ある方がいればどうぞ。 はじめに かつては「OS=物理サーバ」であって、その物理サーバの資源(CPU,RAM,DISK,etc.)をどのように使うかは OS がプロセスに割り振る形で決定されていました。しかし、それでは例えば以下の様な問題があります。 ファイルシステム資源をプロセスが自由にコントロールできない ProcA と ProcB で使いたい libfoo のバージョンが異なる場合面倒 CPU, RAM 資源もコントロールしにくい 同居してるプロセスがメモリい尽くして、みんな死亡、みたいな そもそも異なる OS を同居して使うことができない CentOS ばかり使ってるのに、使いたいライブラリが Debian でしか動かないとか 解決

    最近のサーバの抽象化について - As a Futurist...
    kwry
    kwry 2013/08/07
  • なんかサーバ構築にやたらと時間かかるんだけど何で時間かかるのか考えてみた - tumblr

    最近サーバ構築を仕事でやっているんだけど、どうにも時間がかかってしょうがない。 色々と面倒な制限があるため、それに合わせるように通常の手順を色々変更しなければならないんだけど、それにしても自分の見積もりより大幅に時間がかかっている。自分の見積もり精度は確かに良くはないんだけどもそれを差っ引いても時間がかかっている気がしてしょうがない。 何故かと考えてみた。 1. 何をやったらいいのか分からない 自分でサーバ構築した経験はあるものの、ほとんど全て自分の開発サーバや勉強用や社内で使うようなものだ。apache入れて終わり、iptablesとか面倒なものは使わない、みたいな場合が多い。なのでいくつかの要件を満たすように複数のミドルウェアの設定に一貫性を持たせた上で構築するということはしたことがなかった。 自分の開発マシン内で使うVMであればcurlを叩けばレスポンスが返ってくるもので普通は十分だ

    なんかサーバ構築にやたらと時間かかるんだけど何で時間かかるのか考えてみた - tumblr
  • デーモンの起動・終了にはserviceコマンドを利用しよう

    斎藤です。こんにちは。 今日は、デーモンの起動・終了に際してはserviceコマンドを使った方がいいよ、というお話です。 ※CentOS 6.4 (x86_64) でテストしています。尚、特記がある所を除きます。 デーモンの起動・終了には大きく2手 Linux、特にRedHat, CentOS, Fedora, Ubuntu[1]などでは、デーモンの起動・終了の制御の際に、大きく分けて次の2つの方法を用いる事ができます。 "/etc/init.d/"配下のスクリプト(以下、スクリプト)を直接実行する "service"コマンドを実行する 一見、同じ事をやっているように思えるのですが、実は違う部分があります。それは、起動スクリプトが扱う環境変数が違うのです。次の節で、検証してみます。 扱う環境変数が違う スクリプトを直接実行する場合は、実行時の際の環境変数をそのまま利用します。一方、serv

    kwry
    kwry 2013/06/25
  • さくらVPSでLXCを使って安価に複数台構成を実現する - orangain flavor

    2013年6月7日 22:04更新: Upstartのデフォルトの設定ファイルを書き換えない方法に変更しました。hitoさんありがとうございます。 lxcなどのバージョンを記載しました。 はじめに Chefを使っていると、役割やサービスごとに環境を分離したくなります。 しかし、個人レベルで大してトラフィックがない段階で、サービスごとに仮想サーバーを借りていてはお金が足りません。 そこで、安価なVPS上でLinux Container (LXC) を使うことで、複数のサーバーを作ります。 スケールしたくなったときは、コンテナを潰して、新しく仮想サーバーを借りてChefで同様の設定をすれば手軽にスケールできると考えています。 Heroku使えば?と言われるかもしれませんが、色々なミドルウェアを利用したり、バックグラウンドで処理をしようとすると、たちまちお金がかかるので、VPSをやりくりして遊び

    さくらVPSでLXCを使って安価に複数台構成を実現する - orangain flavor
  • YappoLogs: 馬鹿でもわかる Application Server と Reverse Proxy Balancer のお付き合いを考える

    馬鹿でもわかる Application Server と Reverse Proxy Balancer のお付き合いを考える 一般的な Web Application というのはロードバランサ、Webサーバ、アプリケーションサーバという HTTP を喋るサーバで構成されていると思います。 ロードバランサは高級なハードウェアからソフトウェア(lvs, httpd, etc..)で作るものまで色々ありますね。 アプリケーションサーバでは各種言語に合わせた実装でデーモンが常駐してるでしょう。これはいわゆる普通の Web サーバよりは単純なコンテンツを返す性能が低いです。 そんなわけで動的なアプリケーションサーバが有る構成では js や css や画像など静的なファイルは Apache や nginx などの専用の Web サーバでサービスして、動的なリクエストだけバックエンドのアプリケーションを

    kwry
    kwry 2013/06/07
  • おそらくはそれさえも平凡な日々: サーバーマシンのコア数に応じてworker数を調整する方法

    PSGI/Plackアプリケーションの起動方法いろいろと番環境アレコレ 便乗ポスト。最近は、上記内の「シェルスクリプトでラップする方法」で運用していることが多いです。その場合のone more tips. appサーバーごとにマシンスペックが違う場合がたまにあって、その場合マシンごとに worker数を調整したいけど、deployの都合上サーバー起動スクリプトは同じやつを使いた いってことがあります。 そこでおすすめなのが、CPUコア数に応じてworker数を計算する方法です。 シェルスクリプトの場合、 % cat app.sh #/bin/sh NCPU=`getconf _NPROCESSORS_ONLN` WORKERS=$(expr $NCPU \* 5) exec plackup -E production -s Starlet --max-workers=$WORKERS と

  • Linuxでモニタの電源を管理 « kawama.jp

    現在古いノートPC(ThinkPadR50e)のLinuxサーバ化を計画中で、いろいろ試してます。 今回はモニタ(ディスプレイ)の電源をLinux側からコントロールする方法について調べてみました。 フタを閉じればモニタの電源もOFFになるんですが、放熱のためフタは少し開けておきたいと思います。 そうなるとモニタは付きっぱなし状態。電気代もかかるし、ムダな熱も発します。 ググってみると、settermというコマンドがあるのがわかりました。 http://www.atmarkit.co.jp/flinux/rensai/linuxtips/253usedpmscon.html まずはページにあるコマンドをそのまま実行。 # setterm -blank 5 -powersave on -powerdown 15 cannot (un)set powersave mode よくわかりませんが、パ

  • NICに複数のIPアドレスを振る - satospo

    Linuxでは1つのNICに複数のIPアドレスを振ることができる。 NICのaliasを定義する方法 そもそも1つのNICに複数IPアドレスを持たせる方法 1つ目の方法はifconfigまたはipコマンドで可能。2つ目の方法はipコマンドで可能。 ipコマンドはRedHat系Linuxなどに搭載されているツール。パッケージ名はiproute2です。このツールは従来のarp,ifconfig,routeコマンドを置き換えるための機能を持っている そうです。 ipコマンド ifconfigコマンドでaliasを作る ifconfigではaliasを使って1つのNICに複数のIPを振る。 eth0:0 eth0:1 のようにインタフェースのaliasが作成され、それぞれがIPアドレスを持つ。 ipコマンドでの割当 ipコマンドではaliasを使わないで、1つのNICに複数のIPアドレスを割り