タグ

tuningに関するmas-higaのブックマーク (25)

  • Railsで秒間1000コミットを捌くにはどうすればいいのか (Kaigi on Railsのフリースペースより) - joker1007’s diary

    先日のKaigi on Rails中の雑談として @ima1zumi さんから、RDBに対して秒間1000コミットぐらいで処理が詰まってる場合ってどうするのが良いのか、という質問を受けまして、雑談の中で色々答えてたんですが、せっかくだから記事にまとめておこうと思います。 ちょっとしたKaigi Effectって感じですね。 今回のKaigi on Railsのトークの中では、 数十億のレコードを持つ5年目サービスの設計と障害解決 by KNR - Kaigi on Rails 2023 の話なんかは割と関連がありますね。ユーザーの行動履歴というのは、ユーザー数 * N * タイムスパンで増えていくレコードなので、書き込みとデータ量が爆発しがちです。トランザクションで堅牢に処理しなければいけないケースもそこまで多くないので、RDBだと書き込みに対する処理が過剰なケースが多い。実際のところこの

    Railsで秒間1000コミットを捌くにはどうすればいいのか (Kaigi on Railsのフリースペースより) - joker1007’s diary
    mas-higa
    mas-higa 2023/11/01
    金で解決する
  • rubygems を 1.5 倍に高速化した方法(stackprof --d3-flamegraph の使い方) - まめめも

    タイトルは釣りです。明日 ISUCON 10の予選があると小耳に挟んだので、Ruby で参加する人が絶対に抑えておくべき? Ruby 高速化の tips をひとつ。stackprof --d3-flamegraph のご紹介です。 例題 ちょうど今日、gem install aws-sdk にかかる時間を 37 秒から 24 秒ほどに高速化しました。 変更前: $ time ruby -I lib bin/gem install --no-doc aws-sdk Successfully installed aws-sdk-3.0.1 1 gem installed real 0m37.104s user 0m36.952s sys 0m0.333s 変更後: $ time ruby -I lib bin/gem install --no-doc aws-sdk Successfully

    rubygems を 1.5 倍に高速化した方法(stackprof --d3-flamegraph の使い方) - まめめも
  • Unixコマンド”yes”についてのちょっとした話 | POSTD

    知っているUnixのコマンドで一番シンプルなものは何ですか? 例えば echo という、stdoutに文字列を出力し true を返す – すなわち常に0の終了コードで終了するシンプルなコマンドがあります。 シンプルな、と言えば yes もそうでしょう。引数なしで実行すると、改行されたyが無限に出力され続けます。

    Unixコマンド”yes”についてのちょっとした話 | POSTD
    mas-higa
    mas-higa 2017/11/13
    yes n はたまに使う
  • Death of Optimizing Compiler (最適化コンパイラは死んだ・抄訳)

    Death of Optimizing Compiler (最適化コンパイラは死んだ・抄訳) 2017-09-02 [Sat] 16:07 研究室のリストに流したのでここにもついでに書いておく。 djb が2015年にやった「最適化コンパイラは死んだ」という講演の抄訳。 Death of Optimizing Compiler Daniel J. Bernstein スライド: http://cr.yp.to/talks/2015.04.16/slides-djb-20150416-a4.pdf 音声: http://cr.yp.to/talks/2015.04.16/audio.ogg …この講演のタイトルは「最適化コンパイラの死」ですが、 皆さんの中に「最適化コンパイラ」が何か知っている人はどれくらいいますか? …ほとんどですね。では「死」については? (笑) …そんなにいないようです

    mas-higa
    mas-higa 2017/09/06
    末尾再帰の最適化みたいなのコンパイラはやってくれないの?
  • 1台あたり10,000人を捌くRails製Webサーバのチューニング - dely Tech Blog

    SREの深尾です。kurashiru [クラシル] のインフラを担当しています。 タイトルのとおり、クラシルのwebサイトではRailsを使っており、1サーバあたり10,000人程度のアクセスに耐えることができます。実際には余裕を持たせて5,000人/サーバを目安にスケールさせており、TV CMをガンガンやったり、国内外のTV番組で特集されたり、芸能人にSNSで拡散されても動じませんが、実は過去に1度だけWebサイトがダウンしてしまったことがあります。それは2017年3月11日にSmaSTATION!!というTV番組でクラシルが取り上げられた時のことでした。 以下はその時のリクエスト数を表すグラフです。ダウンしてしまったので計測できなかったユーザの数字は含まれませんがそれでもアクセス数は1分で数万人を超えていました。 それまで、Webサイトの負荷対策はあまり行っておらず、2台のWebサーバ

    1台あたり10,000人を捌くRails製Webサーバのチューニング - dely Tech Blog
  • Bignumの10進文字列化を速くしよう - なるせにっき

    んー、花粉症がひどいし、ここはぱーっとRubyでも高速化して景気づけしたいですね。 先日の日記 でRubyとCしか読めないこの日記の読者の皆さんも、アセンブラに親しみが持てるようになったのではないかと思います。せっかくなので、引き続きこの方向で頑張ってみましょう。 さて、3年前、akrさんが一度はマージしながらも断念した、Use 128 bit integer type in Bignumという案件があります。今日はここから始めます。同時期に公開された資料に「プログラミング言語 Ruby に GMP を組み込む」というものがあります。読むとakrさんの思想の一端が垣間見え、それはしばしばRubyの仕様に影響を与えたりしなくもないのですが、それはまた別の話。どうも1000bitあたりの基数変換(2進→10進 文字列化) が遅かったみたいですね。 しかし、冷静になって考えてみましょう。32bi

    Bignumの10進文字列化を速くしよう - なるせにっき
    mas-higa
    mas-higa 2016/03/18
    divmod ってのが ... あるのは Ruby か。
  • Herokuで高速化するために行ったことの備忘録 | 自転車で通勤しましょ♪ブログ

    Google PageSpeedが終了するよという情報が流れてきて、初めてGoogle PageSpeedを知った。どんなものかと思っていたら、URLを入力したら高速化できていない部分を指摘してくれるものだった。うわー、もっと早く知っていれば…。私が開発に携わっているサービスも徐々に表示速度が遅くなってきていたので、これを参考に高速化を行ってみた。 ちなみに2015年5月12日現在、番環境はHerokuでプログラムはRails4.2でできている。 Google PageSpeed 静的リソースのキャッシュの有効期限を設ける PageSpeedで怒られた中でズラーッと並んでいたのがこれだったので、とりあえず設定することに。 参考ページ: qiita: herokuでブラウザのキャッシュを利用する config/environments/production.rbに以下を設定。 config

  • Windows OSでよく見かける重いプロセス、ベスト10

    対象OS:Windows 7 / Windows 8 / Windows 8.1 / Windows Server 2008 R2 / Windows Server 2012 / Windows Server 2012 R2 ●システムの負荷が重いかどうか調べるには? Windows OSを使っていると、システムが平常時と比べて非常に“重く”なり、例えばマウスやキーボード入力などへの応答が遅くなったり、極端な場合は無応答になったりすることがある。 このような場合は、タスクマネージャーを起動してどのプロセスが重いのかを調べたり、リソースモニターやディスクのLEDランプなどを見て、ディスクの入出力などが非常に増えてシステムの負荷になっていないかどうかを調べたりすることになる(操作手順は次の関連記事参照)。 関連記事: TIPS「負荷の大きいプロセスを特定する方法」 関連記事: TIPS「リソー

    Windows OSでよく見かける重いプロセス、ベスト10
  • Ruby の高速化の道。 - だいありー

    pwd が何の略か? ということを聞かれた。確かに答えられない。 http://www.abbreviations.com/pwd の中で working directory を含むものをピックアップすると、 Print Working Directory Present Working Directory Path of Working Directory の3説が見つかる。 man を見ても、あんまりしっくりこない。なんで cwd (current working directory)にしなかったんだろう? system call は getcwd(2) なのに。 昨日の続き。 早速中田さんが r49614 を入れてくれて、こういう a, b = x, y の時には、 push x # stack: x push y # stack: x y newarray 2 # stack: [

  • AWSガチャは下手なチューニングよりも効果が出る?

    Amazon EC2は立ち上げるインスタンスによって微妙なパフォーマンス差が出ると言われていて、複数回、インスタンスを立ち上げたり、捨てたりして、良いインスタンスを得ることを”Amazon EC2インスタンスガチャと”呼ばれています。 そのパフォーマンス差は、どれくらいなのか?気になったので測ってみました。 検証環境はこんな感じです。 AMI ID: CentOS 7 x86_64 (2014_09_29) EBS HVM-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-d2a117ba.2 (ami-89634988) Instance Type: c3.xlarge 1)Magnetic(standard) 2)Magnetic(standard) + EBS-Optimized 3)General Purpose (SSD) + EBS-Optimi

    AWSガチャは下手なチューニングよりも効果が出る?
    mas-higa
    mas-higa 2014/10/24
    いいのが当たるまでサービス停止
  • Netty 4がTwitterのGCオーバーヘッドを1/5に削減

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Netty 4がTwitterのGCオーバーヘッドを1/5に削減
    mas-higa
    mas-higa 2013/11/19
    例えば GC を止める的な
  • なぜあなたがウェブサイトをHTTPS化するとサイトが遅くなってユーザーが逃げていくのか - 射撃しつつ前転 改

    完全に釣りタイトルですけど中身は真面目に書くよ。 近年、ウェブサイトのHTTPS化が流行のようになっている。私の知る限り、Googleの各種サービスやTwitter、Facebookなどが完全にHTTPSで通信を行うようになっている。HTTPS、つまりSSLによる通信の暗号化によって、ユーザにこれまでよりも安全なウェブサイトを提供できる。 しかし、あなたが作っているサイトをふと思いつきでHTTPS化してしまうと、たぶん、これまでよりもサイトが遅くなる。ここでは、HTTPSで通信する場合の問題を解説する。 なぜ遅くなるのか HTTPで通信する場合、クライアントがサーバへと接続するためにはTCP/IPの3ウェイハンドシェイクという手順が必要になる。めんどくさいのでここでは詳しくは説明しないが、要するにクライアントがリクエストを投げる前にパケットを1往復させないといけないのである。パケットの往復

    なぜあなたがウェブサイトをHTTPS化するとサイトが遅くなってユーザーが逃げていくのか - 射撃しつつ前転 改
  • 第1回 大規模データではRDBMSのどこがボトルネックになるのか? | gihyo.jp

    RDBMSはオワコン? 「右を向いても左を向いても“⁠ビッグデータ⁠”というキーワードが闊歩する時代に、いまさらRDBMSの話題?」 連載のタイトルを見てそう思われたかもしれません。 「ディスクベースのRDBMSはオワコン、これからは○○(お好きなアーキテクチャを入れてください)の時代だ!」 とおっしゃる方もいるかと思います。 しかし、むしろ多くの企業がビッグデータに注目しているおかげで、RDBMS側でも大規模データを取り扱うニーズが増えています。 大規模データを取り扱う時にボトルネックとなる5つのポイント 数百ギガバイトといったレベルのRDBMSであれば、現場のエンジニアの方にとってはあたりまえの世界でしょう。しかし、テラバイトを大きく超えたデータを扱う場合には、ボトルネックの傾向が変化するのはご存じでしょうか。 次の図は、RDBMSにまつわるボトルネックを示したものです。 図1 大規

    第1回 大規模データではRDBMSのどこがボトルネックになるのか? | gihyo.jp
    mas-higa
    mas-higa 2012/12/18
    ボトルネックの種類
  • 改行削除するくらいなら gzip したらいいじゃない

    CSSJavaScript ファイルなどを gzip 圧縮して転送量の削減や Web サイト表示速度の向上を実現する方法を解説。既存 Web サイトのソースには一切手を加えない方法でまとめています。おまけでキャッシュ関連の記述もあり。 いや、1バイトの無駄もゆるせねぇんだよとか、難読化したいとかなら別にやればいいんですけど、CSSJavaScript ファイルの改行やスペースを削除しただけでファイル容量圧縮、読み込み速ーい的なこという人がいるので今さらですが書いてみます。すでに色々なところで書かれてるのでかぶるのは承知の上で。 改行や無駄なスペースなどを削除すること自体が悪いと言ってるわけではありませんのでその辺は誤解ないようにお願いします。ただ、gzip 使って圧縮するのに比べたら、改行削除して削れるファイルサイズなんて微々たるものです。もちろん、両方やれば最大限ファイルサイ

    改行削除するくらいなら gzip したらいいじゃない
  • Webパフォーマンス ベストプラクティス - Make the Web Faster

    Webパフォーマンス ベストプラクティス Last updated: 02 October 2012 翻訳:@t32k WebページをPage Speedで調べるとルールに準拠していないものが提示される。このルールというのは、一般的にあなたが開発段階において取り入れるべきフロントエンドのベストプラクティスだ。あなたがPage Speedを使用しようとしまいと、私たちはこの各ルールについてのドキュメントを提供する(たぶんちょうど新しいサイトを開発中でテストする準備が整ってないだろう)。もちろん、これらのページはいつでも参照することができる。私たちはあなたの開発プロセスに取り入れてもらうために、このベストプラクティスを実装するための明確なティップスと提案を提供する。 パフォーマンス ベストプラクティスについて Page Speedはクライアント側からの観点でパフォーマンスを評価し、一般的にペー

  • 今回はRubyで勝負!全国6会場での開催――第4弾! いろいろチューニングしてパフォーマンスを競うバトルイベント「チューニンガソン」レポート | gihyo.jp

    今回はRubyで勝負!全国6会場での開催――第4弾! いろいろチューニングしてパフォーマンスを競うバトルイベント「チューニンガソン」レポート 2012年7月1日、今回で4回目となるチューニンガソンがVOYAGE GROUPオフィス内の「パンゲア」ミーティングルームにて開催されました。 第4弾! いろいろチューニングしてパフォーマンスを競うバトルイベント「チューニンガソン」 http://www.zusaar.com/event/312053 パフォーマンスを高めるチューニングを競うチューニンガソン チューニンガソン(Tuningathon)とは、システムのチューニングとマラソンをかけ合わせた造語で、たとえばハッカソン(Hackathon)といえば、プログラマが一ヵ所に集まり期間を限って集中的にハックするイベントですが、そのシステムチューニング版と言えます。 チューニンガソンでは、Webアプ

    今回はRubyで勝負!全国6会場での開催――第4弾! いろいろチューニングしてパフォーマンスを競うバトルイベント「チューニンガソン」レポート | gihyo.jp
  • 例えば GC を止める・Ruby ウェブアプリケーションの高速化 - 2nd life (移転しました)

    最近クックパッドでは、アプリケーションサーバの大半が Rails 2.3 から Rails 3 に置き換わったのですが*1、リリース前のベンチマークの時点ではあまりパフォーマンスが出ず四苦八苦していました。具体的には Rails 2.3 の時と比べ MRI 1.8.7 だとレスポンスタムが200%ぐらい遅い結果でした。Rails 3 になって実装が Merb core を取り入れ疎結合で綺麗になった反面、より多くのオブジェクトと・メモリを利用する様になった影響かと思います。 そこで Ruby インタプリタの変更*2を行い検証をしたところ MRI 1.8.7 (Rails 2.3と比べ) 約200%遅い MRI 1.8.7 -> Ruby Enterprise Edition 1.8.7 2011.03 (tcmalloc 無効) 約180%低速 MRI 1.8.7 -> Ruby Ente

    例えば GC を止める・Ruby ウェブアプリケーションの高速化 - 2nd life (移転しました)
  • 3000req / sec と戦う - だるろぐ

    ざっくり概要 ピークで3000req / sec 毎分コンテンツ更新要求 コンテンツ更新の際は他所からデータをapi経由で受け取る コンテンツ更新にはTheSchwartzを使用 なコンテンツを色々してきたログ。 尚、ここに書く技術は大半が周囲のギークな方々にサポートしてもらったもので、僕自身が何かしたわけではない。残念すぎる。 構成 internet -> www(squid -> apache) -> app(memcached -> app) -> db フロントエンド wwwサーバがapacheとsquidを動かしている。apacheがリクエストを受け、squidのキャッシュが有ればそれを返し、無ければバックエンドのappサーバへproxy。 バックエンド appサーバがmemcachedとアプリを動かしている。 それぞれ冗長化してるけど、リクエスト数の割に台数は少ない。 技術があ

    3000req / sec と戦う - だるろぐ
  • チューニンガソンで優勝してきました : DSAS開発者の部屋

    7/9(土)にチューニンガソン というイベントに参加して優勝してきたので、その報告と、何を考えてどんなチューニングをしたのかを 記憶の範囲で公開したいと思います。 今回のチューニンガソンのお題は、WordPress(ja) + php + Apache + MySQL で、 ab を使って wp-comment.php 経由でコメントのポストをすることで計測が行われました。 MySQLとApacheを立ち上げたらWordPressが動く環境が渡され、そのWordPress自体は設定ファイルを含めて 改造が一切禁止、WordPressの実行をショートカットするチートも禁止です。 0. 試合前日 環境がAWSとAMI Linuxということは事前に公開されていたため、前日にAWSに登録して少しだけAMI Linuxを 触ってみました。yumベースだけどCentOSと違って結構新しいバージョンが用

    チューニンガソンで優勝してきました : DSAS開発者の部屋
  • オラクルコンサルタントが語るSQLチューニングの真髄 解決編の資料が素晴らしい! - kitayama_t's blog

    オラクルエンジニア通信というサイトのOracle データベースの監視およびパフォーマンス・チューニングという技術資料の一覧がちょっと整理されていないのが残念だなと思いながらどんな資料があるかチェックしていたら、「えっ、こんな資料を公開してもいいの?」というぐらいの詳しいというかわかりやすいというか高いレベルの資料が見つかった。 SQLチューニングと銘打っているが、カバーしている範囲は幅広くなぜそう考えるのかの理由やアプローチの仕方があるのが素晴らしい。 【セミナー動画/資料】オラクルコンサルタントが語る SQLチューニングの真髄 解決編 Part1&2 PDF資料:http://www.oracle.com/technetwork/jp/content/sql-254794-ja.pdf 目的とゴール SQLパフォーマンス問題の理由と原因 / SQLパフォーマンス問題の定義、SQLパフォー

    オラクルコンサルタントが語るSQLチューニングの真髄 解決編の資料が素晴らしい! - kitayama_t's blog