タグ

ブックマーク / www.na3.jp (54)

  • デブサミ2018「インフラチームからSREへ〜メルカリを支える新しいインフラのあり方」講演メモ #devsumi - 元RX-7乗りの適当な日々

    楽しみにしていた kazeburo 先生のセッション。 電車が遅れていたおかげで間に合わないかと思ったけど、自己紹介が始まったところで、なんとか滑り込み。 メモを書いたので貼り付けておきます。 自己紹介 〜2006 京都のスタートアップ 2006〜 mixi 2010〜 Livedoor(NHN, Line) 2015〜 Mercari SREとの出会い インフラエンジニア? mixi時代は「アプリ運用チーム」 インフラチームは別で存在 DCチームが用意したサーバの能力を目一杯引き出す アプリチームが開発したコードを最大限能力を引き出す オペレーションエンジニア? オペレーション(ルーチンワーク)と捉える人も多い SREとの出会い 2012/7にIRC友人から教えてもらう Googleの巨大なインフラとサービスの稼働・安定性を担保するチームがSRE 2015/11 メルカリにてチーム名と

    デブサミ2018「インフラチームからSREへ〜メルカリを支える新しいインフラのあり方」講演メモ #devsumi - 元RX-7乗りの適当な日々
  • デブサミ2017「グランブルーファンタジーを支えるインフラの技術」講演メモ #devsumi - 元RX-7乗りの適当な日々

    CAを離れて1年半。最近はどんな感じか知りたかったので聞いてきました。面白かったです。 グランブルーファンタジーを支えるインフラの技術 (株)Cygames 佐藤太志 氏 グランブルーファンタジーについて 特徴 スマホのRPG ブラウザゲーム 協力プレイ、マルチプレイ システム規模 登録ユーザ数1400万人 月間300億PV 100万query/sec 8万req/sec トラフィック12Gbps (CDN除く) システム構成 LBはBIG-IP CDNはAkamai HTTP/WebSocketがフロントインターフェース Web: Apache + mod_php + mysqli Node: Node.js + twemproxy DB: MySQL + MHA オンプレミス、仮想化環境は使っていない ネットワーク通信量が非常に多い 低レイテンシを求められている ハイパフォーマンスを実

    デブサミ2017「グランブルーファンタジーを支えるインフラの技術」講演メモ #devsumi - 元RX-7乗りの適当な日々
  • Linuxサーバに搭載されているCPUコア数の確認 - 元RX-7乗りの適当な日々

    この前、若手に聞かれたので、ここにも書いておく。 好みでは有るが、可能な限り数字のみで標準出力に出せるようにしておくと、スクリプトの中などで並列実行数を動的に定義しやすい。 ちなみに下記の前提は、CentOS 6.6 & 56コア(!)のサーバで確認している。 nproc # nproc 56一番簡単なやつ。 getconf # getconf _NPROCESSORS_ONLN 56getconfでも拾える。 /proc/cpuinfo # cat /proc/cpuinfo | grep -c "processor" 56皆さん、ご存知の通り、 /proc/cpuinfo は多くのCPU情報を取得することが出来る。 余談だけど、 /proc/cpuinfo に含まれる"physical id"はどの物理ソケットか、とか、"core id"を見ると物理コア(HT関連などで論理コアの紐付き

    Linuxサーバに搭載されているCPUコア数の確認 - 元RX-7乗りの適当な日々
  • TIME_WAIT状態のTCPコネクションを早く終了させるべくKernelをリビルド - 元RX-7乗りの適当な日々

    以前、一度やったはずなのですが、すっかり忘れてしまっていて、結局調べることになったので、今回はここに作業ログを残しておきます。 TIME_WAITコネクションの増殖 一般的にネットワークアクセス数が極端に多いサーバでは、TIME_WAIT状態のコネクションが残留しがちです。 TIME_WAITの滞留時間が、Linuxデフォだと60秒になっているため、下記のエントリにも書きましたが、60秒の間に数十万レベルのリクエストが来るとあっという間にコネクションテーブルが埋まっていってしまうわけです。 で、別にTIME_WAITコネクションが多くなってしまうこと自体は、完全な悪というわけでもなく、 "net.ipv4.tcp_max_tw_buckets" あたりでキャップもできるし、それなりに制御して付き合っていけばいいわけですが、ローカルのTCPポートを使い切るようなケースだと、使えるローカルポー

    TIME_WAIT状態のTCPコネクションを早く終了させるべくKernelをリビルド - 元RX-7乗りの適当な日々
  • tracerouteの色々 - 元RX-7乗りの適当な日々

    インターネットのネットワークに多少なりと興味がある方なら、指定の目的地までの経路探索をしてくれる、みんな大好きtracerouteコマンド。 そんなtracerouteの色々をメモしておきます。 tracerouteの仕組み 既に多くの解説サイトがあるので、そちらに譲りますw tracerouteはTTLを1ずつ増やしながらパケットを送信することで、経路情報を取得する。 TTLとはパケットの生存期間を表し、ルータを1つ経由することに1ずつ減算される。 ルータはTTLが2以上のパケットが届いた場合、TTLの値を1だけ小さくし次のルータへ転送する。 TTLが1のパケットが届いた場合、届いたパケットを破棄しICMP time exceededパケットを送信者に返す。 tracerouteはまず、TTLを1にセットしたパケットを送信する。最初のルータに届いた時点でTTLがゼロになり、ICMP ti

    tracerouteの色々 - 元RX-7乗りの適当な日々
  • Linuxサーバがディスク容量不足になった!何か消さねば!ってなった時にどう対処するか - 元RX-7乗りの適当な日々

    とりとめもなく書いてみる。主にルーキー向けです。 サーバの運用とかやっていると、不定期ではあるが、たまにタイトルのようなディスク容量が逼迫する話題に直面します。 まぁ、それが起こるのは一旦良いとして、みんなこういう時、どうやって調べているのだろう? とりあえず、僕がどうやってるか書いてみます。 何はともあれ現状確認 みんな大好き"df"コマンドです。細かい説明は省きますが、各パーティション・ファイルシステムごとにディスクの使用状況を確認。 # df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/sda3 130G 88G 36G 72% / /dev/sda1 494M 23M 447M 5% /boot tmpfs 12G 0 12G 0% /dev/shm正確とは言いませんが、だいたいどのパーティションにどのくらい容量が空いているかが確認できます。 ど

    Linuxサーバがディスク容量不足になった!何か消さねば!ってなった時にどう対処するか - 元RX-7乗りの適当な日々
  • AWSの上位ネットワークまわりについて - 元RX-7乗りの適当な日々

    昨日から、色々調べ始めています。今日はAWSの上位ネットワークまわり。特に東京リージョン(Asia Pacific (Tokyo) Region)。 現時点の情報のスナップショットとしてログがわりに残しておきます。 ASN (AS番号) まず、以下のサイトで調べてみると、、、 http://bgp.he.net/search?search[search]=Amazon&commit=Search この通り、Amazonが取得しているASNは10個ほど見受けられますが、中身を見ていくと、このうちAS16509にほぼ集約されていることがわかります。 AS16509に接続されているBGPのPeerの数は現時点で、v4が158、v6が10となっています。(公開情報のみ) Peerの内訳は以下のリンク先から確認できます。 http://bgp.he.net/AS16509#_peers ざっくり確認

    AWSの上位ネットワークまわりについて - 元RX-7乗りの適当な日々
  • 「AWS Summit Tokyo 2013」 1日目の講演メモ #awssummit - 元RX-7乗りの適当な日々

    今日は午後から、表題のカンファレンスに行ってきました。 AWS Summit Tokyo 2013 久しぶりに行くAWS系のビッグカンファレンス。AWSの中の方(ソリューションアーキテクト)が話してくれる「上級者向け」と題されるテクノロジーセッション3つに参加して、メモ書きをとったのでここに残しておきます。 (個人的には、3つ目の大谷さんの話が面白かったです。) ハイブリッド構成を支えるAWSテクノロジー AWS荒木さん プリンシパルソリューションアーキテクト @ar1 なぜハイブリッド環境なのか 既存のアセットを最大限に活かして、AWSのメリットを享受する 開発での利用パターン(dev,stgで使っている) データをどう持ち運ぶか ディザスタリカバリでの利用パターン データをどうやって同期するか 複数のシステムがハイブリッドでやりとり 監視・制御を複数プラットフォームで システム間連携を

    「AWS Summit Tokyo 2013」 1日目の講演メモ #awssummit - 元RX-7乗りの適当な日々
  • 自動車の複数社による同時査定で、一般ディーラー査定よりかなり高額で売却できた話+RX-7ドナドナ記録 - 元RX-7乗りの適当な日々

    まず、このブログの冠にも付けていた僕の愛車、RX-7(FD3S)を売却しました。 この件については、一言で語りきれず、断腸の思いというか苦渋の決断をしました。 売却にあたっては色々と考えた結果、自動車の一括査定(しかも複数社による同時査定)をしていただいたのですが、僕のRX-7は元々非常に特殊な車&チューンドカーということもあってか、ディーラー査定よりかなり高額で売却できたことと、同時査定に関する情報(体験談や交渉の詳細)がネット上にほとんど存在していないので、僕が得たノウハウを含めて、ここにログを残しておこうと思います。(スケジュール通り、無事トラブルもなく入金いただいたので。) 尚、今回の前提となる車は、既に絶版車ですが、十年落ちの中古車でもグレードや程度がよければ、当時の新車並みの300〜400万という価格で売られている超人気スポーツカーなので、全ての車で今回のようなケースにはならな

    自動車の複数社による同時査定で、一般ディーラー査定よりかなり高額で売却できた話+RX-7ドナドナ記録 - 元RX-7乗りの適当な日々
    yutamoty
    yutamoty 2013/03/07
  • iPhone4Sの背面ガラスの修理代が、Apple Storeで意外と安かった話 - 元RX-7乗りの適当な日々

    もう1ヶ月以上前の話なんですが、@masudaKのiPhone4Sが落下してバキバキに割れる事故に巻き込まれてしまいまして、僕が修理代をもつことになりました。 で、@masudaKと話したところ、綺麗になるならOKということだったので、Apple Storeでの修理事例とあわせて、巷のiPhoneのガラス修理をしてくれるお店をいくつか調べていたのですが、どうも背面のガラスに限った話をすると、家のApple Storeで直すのが安価とのこと。 ということで、渋谷のApple Storeに行ってみると背面のガラス修理は「2,800円」とのことだったので、直していただきました。 (他のガラス修理お店(渋谷界隈)では、背面だと3,800円〜くらいの価格帯でした。) 修理時間もおよそ10分くらいで、お店をブラブラしているうちに終了。正規店でお安く修理できるのなら言うことないですね。 before

    iPhone4Sの背面ガラスの修理代が、Apple Storeで意外と安かった話 - 元RX-7乗りの適当な日々
  • Linuxのbonding(802.3ad)で発生したトラフィックの偏りをなおした話 - 元RX-7乗りの適当な日々

    はじめに とある環境の話。internalのLinuxサーバでbonding(ボンディング)を組んでいました。modeは4。802.3ad(LACP)準拠のリンクアグリケーションなモードです。 ちなみに、bondingとは・・・ ちなみに、"bonding"とは、ネットワークインターフェースを冗長化(または負荷分散)する方法で、複数のNICを束ねて1に見せることができます。チーミング(teaming)と呼ばれたりもしますね。 で、Linuxではbondingにもいくつかモードがあって、複数のポリシーの中から選択することができます。 balance-rr 又は 0 - 耐障害性とロードバランシングのためラウンドロビンポリシーを設定します。利用可能な第 1 のインターフェースからそれぞれのボンディングされたスレーブインターフェースで送受信が順次行われます。 active-backup 又は

    Linuxのbonding(802.3ad)で発生したトラフィックの偏りをなおした話 - 元RX-7乗りの適当な日々
  • DNSラウンドロビンを使った時にアクセス・負荷が偏る話 - 元RX-7乗りの適当な日々

    昨日に続き、アクセスが偏る系のエントリです。 なにかと議論のネタになるDNSラウンドロビンですが、今日はDNSラウンドロビンを使った時に、各IPアドレスにくるリクエスト数に偏りが出るという話。 DNSラウンドロビンで設定されているFQDNに、コマンドラインで"host"とか"nslookup"のコマンドを何度か実行すると、返ってくるIPアドレスリストの順序が入れ替わっていくことが確認できると思います。 基的に、クライアントはそのIPアドレスリストの上(最初)からアクセスを行うため、これによって(一応)負荷分散が実現できるはずですが、特定環境のクライアントでは、ラウンドロビンとはならずに必ず特定のIPアドレスにアクセスするケースがあるのです。(既知の事実ですが。) この事は、Wikipediaの該当ページにも記載されています。 主にIPv6における宛先アドレス選択アルゴリズムとして定義され

    DNSラウンドロビンを使った時にアクセス・負荷が偏る話 - 元RX-7乗りの適当な日々
  • 大量の接続がやってきた!ヤァ!ヤァ!ヤァ! - 元RX-7乗りの適当な日々

    ※ 以下、フィクションです。 はじめに: こんなサーバ(↓dstat) (裏バッチによりiowaitとLAが高いのは一時的な仕様とする) 気付けばログに・・・ Mar 29 18:08:02 hostname kernel: printk: 48843 messages suppressed. Mar 29 18:08:02 hostname kernel: TCP: time wait bucket table overflow Mar 29 18:08:07 hostname kernel: printk: 54962 messages suppressed. Mar 29 18:08:07 hostname kernel: TCP: time wait bucket table overflow Mar 29 18:08:12 hostname kernel: printk: 648

    大量の接続がやってきた!ヤァ!ヤァ!ヤァ! - 元RX-7乗りの適当な日々
  • 特定のユーザが持つプロセス全てにシグナルを送る - 元RX-7乗りの適当な日々

    さっき、killコマンドのmanを読んでいて気付いた。 pid に -1 を指定した場合、 sig で指定したシグナルが、呼び出し元のプロセスがシグナルを送る許可を持つ全てのプロセスに送られる。但し、プロセス番号 1 (init) へはシグナルは送られない。 Man page of KILL ほほう。つまり、 $ kill -9 -1とかやると、自分が持つプロセス全てにシグナル(SIGKILL)を送信できるとな。 (上記例の"-9"の部分は任意のシグナルでお願いします。"kill -l"とかで確認できる。) 応用して、 # sudo -u username kill -9 -1とかやると、特定のユーザ(上記例だと"username")の所有するプロセス全てを抹殺することができるわけですね・・・。便利ですが、取り扱い注意。 参考 KILL(1) KILL(2) LinuxサーバHacks―プ

  • 複数のtarファイルを一気に展開する - 元RX-7乗りの適当な日々

    特定のディレクトリ内に存在する複数のtar.gzファイルを一括して解凍・展開したい場合のメモ。 xargsコマンドの"-n"オプションがポイント。(追記あり) $ find ./ -type f -name "*.tar.gz" | xargs -n 1 tar zxftarコマンドは展開(抽出)の際に、同時に複数のファイルを引数に渡せないので、xargsコマンドの"-n"(--max-args)オプションを利用します。このオプションを使うと1コマンドにつき、最大でオプションにて指定した数だけ引数を使うようになります。↑の場合だと1個しか引数が渡らないようになるということです。 $ find ./ -type f -name "*.tar.gz" -print0 | xargs -0 -n 1 tar zxfちなみに厳密にちゃんと書くと↑な感じですかね。 追記 早速、ご指摘いただきました。

    複数のtarファイルを一気に展開する - 元RX-7乗りの適当な日々
  • わずか2時間で出来た!無料でDropboxの容量を8GB増やせるチュートリアル - 元RX-7乗りの適当な日々

    先日、Dropboxの追加ボーナスを「Google Adwords」(アドワーズ)の無料お試し券で増やす話を読んで、なるほど!この発想はなかった!と思ったので、実際に自分でもやってみることにしました。 http://matome.naver.jp/odai/2132892778665913601 8GBの追加容量をもらうためには32人に紹介しなければならない 一般人が達成するのは不可能に近い人数ですよね。 http://matome.naver.jp/odai/2132892778665913601 無料お試し券があればタダで広告が出せます もらったまま放置していたアドワーズのお試し券があるなら、使うのは今だ! http://matome.naver.jp/odai/2132892778665913601 つまり、このエントリは実際にやってみて、どうやったのか、どんな感じで増やせたのかを詳

    わずか2時間で出来た!無料でDropboxの容量を8GB増やせるチュートリアル - 元RX-7乗りの適当な日々
  • あるディレクトリ以下の全てのbinディレクトリにPATHを通したい時 - 元RX-7乗りの適当な日々

    Linuxの開発/検証環境とかで色々とプロダクトをインストールした時って、毎度環境変数のPATHを設定するの面倒くさいですよね。 そんな時は、片っ端からbinとかsbinディレクトリにパスを通しちゃいます(^^;) $ export PATH=$PATH:`find /usr/local -type d -name '*bin' | paste -s -d : -` findで引いてきたものをpasteする時に、"-d"オプションで区切り文字に":"を使っておけば良いわけですね。 ちょっとしたTIPSでした。 =͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́

    あるディレクトリ以下の全てのbinディレクトリにPATHを通したい時 - 元RX-7乗りの適当な日々
  • Linuxでのリモート越しの差分チェック(diff)色々 - 元RX-7乗りの適当な日々

    今さっき、サクッと書き殴ったワンライナーなので突っ込みどころはあると思いますが、汚いのを承知の上で備忘録的に公開してみようと思う。ポータビリティ重視。 ※ ちなみにノンパス設定している環境です(^^;)。必要に応じて各種パラメータを書き換えて実行してください。 ローカルの1ファイルと、リモートサーバにある1ファイルの差分チェック $ ssh 192.168.1.1 "cat /usr/local/apache2/conf/extra/httpd-mpm.conf" | diff - ./httpd-mpm.confこれは基。ユーザ名を付ける時は、"username@192.168.0.1"とか指定してください。(><) ローカルの1ファイルと、複数のリモートサーバそれぞれにある1ファイルの差分をチェック $ for i in `seq 1 10`; do IP=192.168.1.${i

    Linuxでのリモート越しの差分チェック(diff)色々 - 元RX-7乗りの適当な日々
  • デブサミ2012の資料「大規模化するピグライフを支えるインフラ 〜MongoDBとChefについて〜」を公開します - 元RX-7乗りの適当な日々

    今年で10周年を迎えた「Developers Summit 2012」 まずは10周年おめでとうございます。そして"いつも"ありがとうございます。 そんな記念すべき(通称)デブサミで機会をいただいて話をしてきましたので、資料を公開します。私としては、2010年以来の2回目の登壇となりました。 ※ 参考: デブサミ2012で、MongoDBとかChefを実サービスで使っている話をします オープン3週間でユーザ数100万人を突破したピグライフは、これまでのアメーバのサービスの中でも類を見ないスピードで成長しています。そのため、このピグライフを構成するアーキテクチャや開発/運用についても、よりスケーラビリティが確保できるインフラが求められます。セッションでは、それらを支える取り組みについて、実際の事例をベースにお話しします。 10年後も世界で通じるエンジニアであるために Developers

    デブサミ2012の資料「大規模化するピグライフを支えるインフラ 〜MongoDBとChefについて〜」を公開します - 元RX-7乗りの適当な日々
  • grepで指定オプションを自動付加してくれる環境変数 "GREP_OPTIONS" - 元RX-7乗りの適当な日々

    "GREP_OPTIONS"という環境変数に、常に付けておきたいオプションをあらかじめ指定しておくと、grepコマンドやxgrep(egrepとかfgrepとか...)を実行したときに、自動でオプションをつけて実行してくれます。 例えば、、、 $ export GREP_OPTIONS="--color=auto"とか。常に含めておくなら、あとは"-I"オプションとかですかね。これくらいなら"alias"でも良いわけですがw grepとか毎日使ってもおかしくないコマンドなので、こういう小さい効率化はどんどんやっていきたいところですね! オプション無しで実行した場合 GREP_OPTIONSを設定してから実行した場合 おまけ: --colorの色を変えたい場合 環境変数 "GREP_COLOR"に色コードを指定してやると良いです。 例えば、ハイライトを黄色にしたい場合とかは、以下のような感じ

    grepで指定オプションを自動付加してくれる環境変数 "GREP_OPTIONS" - 元RX-7乗りの適当な日々