タグ

ブックマーク / yakst.com (14)

  • CharsetとCollationの設定がMySQLのパフォーマンスに与える影響 | Yakst

    MySQL 8 は MySQL 5.7 より常に高速とは限らない(MySQL 8 is not always faster than MySQL 5.7) に続いて、 今回は、データがメモリに収まっており、CPUバウンドな、read only のとてもシンプルなワークロードのテストをすると決めました。このワークロードにIO処理はありません、メモリとCPUの処理だけです。 テスト環境 環境のスペック Release | Ubuntu 18.04 LTS (bionic) Kernel | 4.15.0-20-generic Processors | physical = 2, cores = 28, virtual = 56, hyperthreading = yes Models | 56xIntel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz< Memory T

  • サポートに来るメールを全社員が読むべき理由 | Yakst

    Stuff では「全社員がサポートに送られてくるメールを読むこと」という取り決めがあります。 これにはデータ分析による統計値を眺めるよりも、リアルな消費者の声に耳を傾けむけるべきという主張が込められています。 原文 Why everyone should read support emails – Simon Schultz – Medium (English) 原文著者 Simon Schultz 原文公開日 2019-03-04 原文ライセンス CC BY 翻訳依頼者 翻訳者 msh5 翻訳レビュアー doublemarket 原著者への翻訳報告 1691日前 原文へのコメントで報告済み 編集 Stuff では、原則や組織構造についての取り決めはほとんどありませんが、例外としてとても重要にしていることが一つあります。 全社員がサポートに送られてくるメールを読むこと これまでのプロジェク

    atsuizo
    atsuizo 2019/03/11
    エモい。そして、素晴らしい。
  • さようならPython、こんにちはGo | Yakst

    以前はPythonで書いていたようなタスクを、最近ではGoで書くようになったという筆者による、Pythonと比べたGoの良さ、あるいは足りない部分のまとめ 私は、以前はPythonで書いていたようなたくさんの処理でGo言語を使っています。たとえば下記のような処理が挙げられます。 Amazon S3に保存されているCloudfrontのログの処理 S3内外への巨大な(テラバイト級の)ファイルを移動する処理 データベースとS3間において同期済ファイルのマッチングする処理 ほんとんどが一度きりの処理であり、そのためスクリプト言語で書くことが理想的です。そのプログラムは、すばやく書く必要があり、すぐに捨てられる可能性が高いです。いつもこれらのタスクは新しくユニークなものだから、再利用できるコードは最小限となります。 以下に、Pythonの代わりに、Go言語を利用することの優位点を挙げます。 コンパ

    atsuizo
    atsuizo 2018/09/18
    コンパイラがないLLがいいって言ったり、コンパイラがあるGoがいいって言ったり、忙しい業界だよね。
  • MySQLがメモリー不足の時に何をするか : トラブルシューティングガイド | Yakst

    MySQLがメモリー不足で停止してしまった(OOM Killerに停止させられた)時に確認すべき項目を紹介する。特に、MySQLのバグでメモリリークが起きている可能性がある場合に手がかりを得る方法について。 [MySQL]原文 What To Do When MySQL Runs Out of Memory: Troubleshooting Guide - Percona Database Performance Blog (English) 原文著者 Alexander Rubin 原文公開日 2018-06-28 翻訳依頼者 翻訳者 doublemarket 翻訳レビュアー kakuka4430 原著者への翻訳報告 1948日前 原文へのコメントで報告済み 編集 クラッシュした時のトラブルシューティングが楽しいタスクであったためしはありませんが、クラッシュの原因をMySQLが教えてくれ

  • CPU使用率は間違っている | Yakst

    Netflixのパフォーマンスエンジニアである筆者からの、topコマンドなどで表示されるCPU使用率(%CPU)は、いまや当の使用率を表しておらず、チューニングなどのための指標として使えないという指摘。なぜそうなってしまったのか、何を見れば当のCPU使用率がわかるのかをわかりやすく解説した記事。 私たちみんながCPU使用率として使っている指標は非常に誤解を招くもので、この状況は毎年悪化しています。CPU使用率とは何でしょうか?プロセッサーがどのくらい忙しいか?違います。CPU使用率が表しているのはそれではありません。私が話しているのは、あちこちで、あらゆる人たちに、あらゆる監視製品で、あるいはtop(1)でも使われている、"%CPU"という指標のことです。 あなたの考えているであろうCPU使用率90% : 実際 : "stalled"(訳注 : 以下ストールと言う)とは、プロセッサーが

    CPU使用率は間違っている | Yakst
    atsuizo
    atsuizo 2017/06/16
    メモリバウンドの場合、多重処理が近しいメモリ空間をアクセスしてセマフォ・ラッチ競合起こしてるだろうから、そこを分散しろって理解でOK?
  • MySQLのinformation_schemaの便利なクエリ(MySQL Step-by-Step Blogより) | Yakst

    出典について この記事はMySQL Step-by-Step BlogのUseful queries on MySQL information_schema(2015/07/15)を翻訳したものです。 MySQLのinformation_schemaはデータベースのインスタンス、ステータス...などなどの日々のDBAの仕事に必要とされる有用な情報を備えている。 私が日々使う基的なinformation_schemaへのいくつかのシンプルなクエリがあり、私自身が参照するためにこの投稿を書いており、または誰か他の人にも良いリファレンスになるだろう... 主キーまたはユニークキーがないテーブルをみつける 主キーは非常に重要であり、MySQLのInnoDBのテーブルでは主キーをクラスタインデックスとして利用するため、主キーがないと深刻な性能問題につながりかねない。 主キーがないと、スレーブのロギ

    MySQLのinformation_schemaの便利なクエリ(MySQL Step-by-Step Blogより) | Yakst
  • InnoDBの分離レベルによるMySQLのパフォーマンスへの影響 | Yakst

    MySQL Performance Blogの翻訳。MySQLがサポートする4つのトランザクション分離レベルの特徴とパフォーマンス上の特性を、トランザクション履歴の保持方法に的を当てて比較。 January 14, 2015 by Peter Zaitsev 過去数ヶ月に渡って、InnoDBのトランザクション履歴の負債の危険性と、MVCCがMySQLのパフォーマンス問題の原因になりうることについて、いくつかの記事を書いてきた。この記事ではそれに関連して、InnoDBのトランザクション分離レベルとMVCC(multi-version concurrency control、多版型同時実行制御)との関連性、そしてそれらがMySQLのパフォーマンスにどう影響するのかを取り上げてみようと思う。 MySQLのマニュアルにはMySQLでサポートされているトランザクション分離レベルの詳細な説明がある。こ

    InnoDBの分離レベルによるMySQLのパフォーマンスへの影響 | Yakst
  • MySQLインデックスのお手入れの基本 | Yakst

    Percona Database Performance Blogの翻訳。既に運用を始めたデータベースで、インデックスが正しく使われているか、無駄や不足がないかを確認する方法のまとめ記事。クエリをひとつひとつ確認するのではなく、統計情報を元に判断する分かりやすい方法。 このブログ記事では、MySQLインデックスに手入れする基的なステップについて見ていこうと思います。 データベースは、インデックス次第でハイパフォーマンスにも、役立たずで遅くて大変にもなりうることはご存知でしょう。インデックスは、時々手入れをする価値がある非常に重要なものです。それでは、何をチェックすればよいのでしょうか?順不同ですが、確認すべき点を挙げてみます。 1. 使われていないインデックス sysスキーマで、使われていないインデックスをとても簡単に見つけられます。 schema_unused_indexes ビューを

    MySQLインデックスのお手入れの基本 | Yakst
  • MySQL 5.6での、マルチカラムインデックスとカラムごとのインデックスの比較 | Yakst

    MySQL Performance Blogの翻訳。複数のカラムを指定したマルチカラムインデックスを使うべきか、カラムごとに別々にインデックスを作るべきかは悩ましい問題だ。しかし、MySQL 5.6で導入されたIndex condition pushdownの仕組みを理解すれば、マルチカラムインデックスを効率的に使うことができるようになる。 インデックスに関する話をしている時によく出てくる質問と言えば…マルチカラムインデックスを使うべきか、カラムそれぞれにインデックスを張るべきか、ということだ。Peter Zaitevがこれについて2008年に書いていて、その時の結論としては、マルチカラムインデックスが多くの場合においてベストな解決策だ、というこだった。しかし、最近のオプティマイザの進化によって、MySQL 5.6では事情は違ってきてはいないだろうか? 準備 テストのため、以下のような2つ

    MySQL 5.6での、マルチカラムインデックスとカラムごとのインデックスの比較 | Yakst
  • [Q&A]MySQL開発でやってしまいがちな致命的ミス | Yakst

    Percona MySQL Webinarsの発表(MYSQL開発でやってしまいがちな致命的なミスについて)のQAをご紹介します。 発表はSQLアンチパターン著者のBill Karwinさんの発表です。 オリジナル: http://www.percona.com/resources/mysql-webinars/how-avoid-even-more-common-deadly-mysql-development-mistakes July 17, 2014 by Bill Karwin 水曜日に「MySQLを開発する上でよく起こる(そして致命的な)ミスをどのように回避するか」をPercona MySQL webinarsで発表した。お見逃の際は、ビデオとスライドを見る為に登録すればまだご覧にいただける。 参加いただいた皆様、そしてとりわけすばらしい質問をしていただきありがたく思っている

    [Q&A]MySQL開発でやってしまいがちな致命的ミス | Yakst
    atsuizo
    atsuizo 2016/08/02
    "オプティマイザが20%より多くの行が検索対象に含まれると判断した場合、インデックスをバイパスして単にテーブルスキャンをする。"
  • Innotop - MySQLのためのリアルタイムで高機能な調査ツール | Yakst

    MySQL Performance Blogの翻訳。MySQLをリアルタイムなステータスを見るツールにinnotopがある。このシンプルだが非常に役立つツールの基的な使い方や、複数のサーバの状態を一度に確認する方法などを解説する。 MySQLGUIモニタリングツールは、我々のあらゆるニーズや状況にいつでもぴったりくるものとは限らない。そういったツールの多くは、MySQLサーバの現在の状態をリアルタイムに表示してくれるというよりは、データベースに過去どのようなことが起きたかの歴史的な見方を提供してくれるよう設計されている。CactiやZabbix、Ganglia、Nagiosといった素晴らしいフリーのツールもある。しかしこれらは、MySQLインスタンスで何が行われているかの詳細を見るためには正しく設定をする必要がある。そしてそういった設定は、素早くできるとは言い難く、面倒なものである(G

    Innotop - MySQLのためのリアルタイムで高機能な調査ツール | Yakst
  • MySQLの大きなテーブルでのパフォーマンスを改善する10の方法 | Yakst

    MySQLコミュニティマネージャのMorgan Tocker氏による、テーブルサイズが大きくなるにつれてINSERTのパフォーマンスが落ちてきてしまうことを防ぐ様々な方法についてのまとめ。 今日は、パフォーマンス問題を引き起こす原因になる、サイズの大きいテーブルのパフォーマンスを改善することについて書いてみようと思う。このアドバイスのうちのいくつかは、たくさんのテーブルをまとめて大きくなっているデータベースにも適用できるが、大抵の場合、独立した大きなテーブルというのは特に問題になりやすいものだ。 一般的に知られていると思われるのは、テーブルを変更する時のスピードは、そのサイズが大きくなるにつれて遅くなることだ。以下の図は、一般的なB+ツリーインデックスのパフォーマンスを時系列で見たものだ。 このグラフは、MySQL@Facebookの記事から拝借したものだ。これは、insert buffe

    MySQLの大きなテーブルでのパフォーマンスを改善する10の方法 | Yakst
  • MySQL 5.6のインストール後にチューニングすべき項目 | Yakst

    MySQLコミュニティマネージャのMorgan Tocker氏による、MySQL 5.6をインストールした後にデフォルト値から変更した方がよいパラメータの解説。 数々のデフォルト値の改善によって、過去のバージョンと比べてMySQL 5.6では設定しなくてはならない値がかなり減った。とは言え、変更すべきものについてここで書いておきたい。 InnoDBの設定 innodb_buffer_pool_size - デフォルトは128M。これは、メモリにロードされるデータとインデックスのためにInnoDBがどのくらいメモリを使うかを指定するものなので、設定すべき重要な値だ。MySQLの専用サーバなら、搭載されているメモリの50%から80%が推奨される設定値だ。例えば、64GBのRAMを搭載しているサーバなら、バッファプールは50GB程度にすべきだろう。 innodb_log_file_size -

    MySQL 5.6のインストール後にチューニングすべき項目 | Yakst
  • MySQL 5.6とAmazon RDSの設定の違い | Yakst

    MySQL Performance Blogの翻訳。MySQL 5.6とAmazon RDSの設定パラメータの違いと、その理由について解説する。 過去数年にわたってずっと耳にし続けていて、現在でもよく聞く不満と言えば、Amazon RDSが、MySQLをEC2インスタンスで動かした時と比べて設定の柔軟性がないことだ。と同時に、MySQLインスタンスをチューニングするために非常に重要なパラメータへアクセスできるようにしているという、一貫してAmazonのやってきたことを無視してもいる(所詮、bind_addressをRDSインスタンスで設定することが顧客にとってどの程度関連があるかによる)。 視覚的に見てみよう。 MySQLは、523のオプションを提供している(うち35がNDB関連なのでRDSとは関係ない)。一方で、RDSは(Web UIからは)283のオプションを提供しており、うち58が変

    MySQL 5.6とAmazon RDSの設定の違い | Yakst
  • 1