サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
serinuntius.hatenablog.jp
ISHOCON2で惨敗して、悔しくてたまらなくてhttp2やnginxのことについてずっと調べたので、調査記録として残しておく。 serinuntius.hatenablog.jp 一番手軽で万能な「strace」 使い方 ざっくりと集計してボトルネックを探す 集計結果を元にあたりをつけて調査する 出すのは面倒だけどわかりやすい「FlameGraph」 インストール方法 使い方 HTTP 1.1 のときのグラフ HTTP 2 のときのグラフ 2つの調査結果から考えられる対策 まとめ 参考 一番手軽で万能な「strace」 straceとはprocessに直接アタッチして、システムコールを調査するためのコマンドです。 インストールも簡単で、使うのも簡単です。 しかも、どんなツールにも使うことができます。 しかし、読み解くのは難しいです。(個人的な感想です。) 使い方 ざっくりと集計してボトル
昨日(2018年8月25日)、ISHOCON2というISUCONの個人競技バージョンの大会に参加してきたのでレポートです。スコアが思うように伸びなかった方はぜひ読んでみてください。 ISHOCONとは ISHOCONの特徴 問題がコンテスト開催前からオープンであること 個人参加であること ベンチマーカーもオープンであること Go実装を選択してやったこと CSSをNginxで返す プロファイリングツール入れる templateを外に出す mysqlとnginxのコンフィグをgit管理するように GETのレスポンスは全部cacheする POST /vote のレスポンスもcacheする 投票をRedisに載せる Sorted Set 文字列型 都度メモリのアロケーションが走ると重そうなので、 POST /vote を中心にsync.Pool計画 ベンチマーカーとの戦い ~リアルISUCON~
おはようございます。 裏技ってつけると急にワザップ感が出て、懐かしいですよね〜。 こないだ飲み会で同期とそんな話をしておりました。 本題 ログインが必要なWebサイトで画像を引っこ抜いて欲しいという依頼があり、スクリプトを書くかな〜と迷ったんですが、よく考えたらシェル芸だけで出来るな〜と思ったので共有したいと思います。 今回はデザイナーにGitHubのIssueに貼ってある画像200枚以上をzipで欲しいって言われたので、それを題材にします。 環境 Chrome curl grep egrep やり方 1. Chromeでおもむろにデベロッパーツールを開く Macなら Shift + Cmd + c等で開けます。 2. networkを選択する そのページのリクエストを見つける たぶん、一番上のはず。 3. 右クリックして、Copy as cURLを選択 今回の肝はこれで、ブラウザで送った
めっちゃ久しぶりのブログになってしまった。 書くことなんか何個でもあるのに、バタバタしてたりでアウトプットを疎かにしていた。(言い訳) 本題 少し前から気になってたことだったんだけど、go run main.go で実行すると、mainパッケージの別ファイルのグローバルな関数の呼び出しができない。 github.com 最小構成のリポジトリを作った。 これを、適当にcloneして、 go run main.go すると実行できない。 最小構成のサンプル作った。https://t.co/nvec9r5CYq pic.twitter.com/XEFZQaj9Ge— serinuntius (@_serinuntius) July 15, 2018 解決策 buildする。 go build -o main && ./main で buildすると実行できる。 どうしてもgo runしたいときの
この記事でも書いたけど、ISUCON用のロガーを作ったので、そのログをパースするツールを書こうと思った。 serinuntius.hatenablog.jp 少しパフォーマンスを意識して書いてみたけど、きっともっとパフォーマンスが良くなる気がするのでマサカリウェルカムです。 パースするログ ベンチマークの見方 試行錯誤の歴史 毎行Unmarshal jsonのarrayを[]byteで作って、1回だけUnmarshal あらかじめファイルサイズ分のbyteを用意する bytes.Buffer使ってみる jsoniter使ってみる makeで行数分のRequestを作る 結論 まとめ おまけ 追記 お急ぎの方は 結論 にどうぞ。 パースするログ 今回パースするログはこんな感じのログでこれが何千行とあるのを想像していただければ。 {"level":"info","ts":1525134349.
はじめに この記事でも書いたけど、最近ISUCONの面白さに気づいた。 serinuntius.hatenablog.jp 社内ISUCONはRubyで書かれていたけど、本家ISUCONでは使用言語が選択できる。 そうなったら、今なら迷わずにGoを選ぶ。 それは、何故かと言うとGoが速いとかそういう理由よりも、GolandというIDEのおかげである。 こいつの補完やらなんやらがとても良くできているので、ソースを読むのも書くのも爆速になるからである。 RubyにもJetbrains製の Rubymine というのがあるけれど、動的言語だからか完全にはコードジャンプできない。 同名のメソッドがあったときには、選択肢が出てユーザにどのメソッドですか?みたいな感じで問いかける感じ。 けど、Golandは型があるからか100%の精度でコードジャンプできる。 そのおかげで、爆速コードリーディングが可能
昨日新卒研修向けの社内ISUCONがあり、ISUCON7の優勝者であるsuzukiくんとペアを組んで去年の新卒という枠*1で出させてもらった。*2 僕のISUCONレベルは、社内ISUCONを新卒研修のときに1回やったことがある程度で、レベル5まであるとすれば僕は確実に1ですね。一度やったことがあるというだけですw レベル1の僕が学んだことなので、ISUCONの常連さんには当たり前のことなのかもしれませんが、順番に書いていきたいと思います。 今回のお題 学んだ12のこと 準備を爆速で終わらせる 初期ベンチ回してアタリを付ける 静的ファイルの配信をnginxでする 分析基盤を作る 静的ファイルのキャッシュ ループクエリ撲滅 テーブルの非正規化 ボトルネック以外を修正する意味の薄さ 最終ベンチでFailしたらダメ!!! お互いを信じる!! MySQL(RDBMS)遅くない! Dockerがネッ
YAPC::Okinawa 2018でベストLT賞に選んで頂いた 1ヶ月前までRuby書いてたのに、気づいたら沖縄でPerlのLTをしていた そんな感じ。紆余曲折を経てこうなった。 この記事は、自分が発表者として書いた記事で、聞いた側の記事はこちらに書いた。 資料 新卒Rubyistが1ヶ月でPerl Mongerになった話 from serinuntius www.slideshare.net LTをして得たもの LTに参加していろいろなものを得たので紹介したい。 Kindle Oasis 唯一の物理枠。スポンサーのCOLSIS様からKindle Oasisを頂いた。 1ヶ月程前にKindle PaperWhiteを買って、「超いいぞ」ってなってたのでめっちゃ嬉しい。COLSIS様、ありがとうございます。 承認欲求の満たされた感 懇親会でお話させていただいたり、Twitterやブログを観
このページを最初にブックマークしてみませんか?
『ps aux | grep serinuntius』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く