タグ

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

  • MySQLのコネクションハンドリングとスケーリング | Yakst

    MySQLのコネクションハンドリングの内部構造、スケール限界、そして最大コネクション数のチューニングなどについてご紹介します 免責事項 この記事はGeir Hoydalsvik氏によるMySQL Server Blogの投稿「MySQL Connection Handling and Scaling」(2019/3/19)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 この投稿では、MySQLのコネクション、ユーザースレッドおよびスケーリングについて取り扱います。MySQLがどのように動作するかをよりよく理解することで、アプリケーション開発者やシステム管理者が、トレードオフを踏まえた良い選択をできることでしょう。記事ではコミュニティー版でコネクションがどのように動作するかについて述べますが、一方でスレッドプール、リソースグループ、あるいはコネクション多重化といった関

  • ロギングにおける十戒 | Yakst

    どのように何をロギングするかを知ることは、ソフトウェアエンジニアが解決すべき最高に難しいことの一つだ。アプリケーションのログを拡張する手助けとなるのがこの「十戒」だ。 新年の私のブログにようこそ。監視とログのモニタリングについてのParisのdevopsメーリングリストでのスレッドに返信を書いた後、長らく心に留めていたブログ記事を思い出した。 このブログ記事は、私のOpsとしての顔をもって、主に開発者向けに書いた。 どのように何をロギングするかを知ることは、ソフトウェアエンジニアが解決すべき最高に難しいことの一つだ。多くの場合、これは予言をするのと同じようなことだからだ。トラブルシューティング中にどんな情報が必要かを知るのはとても難しい。それが、Opsエンジニアの大きな助けとなるよう、あなたのアプリケーションのログを拡張する手助けとなるこの「十戒」を望んだ理由だ。 1. 自分でログを書くべ

    ロギングにおける十戒 | Yakst
  • MySQLの高可用性構成の展望2017年版(赤ちゃん編) | Yakst

    シリーズ第三回目で、「グループレプリケーション」「プロキシ」「分散ストレージ」について紹介している。グループレプリケーションはGaleraとの違いについて、プロキシには幾つかの選択肢があること、分散ストレージではオープンソースのAuroraのようなデーターベースが可能になることなどが述べられている。 この記事は、2017年現在で使用できるMySQLの高可用性ソリューションに焦点を当てたシリーズの第3回目です。 最初の記事では10年以上前から存在していた技術である「長老」を見ました。(訳注:長老編日語訳)第2回目の記事では「大人」 、つまりより最近の成熟した技術について話しました。(訳注:大人編日語訳)この記事では、新興のMySQL高可用性ソリューションを紹介します。私がブログで選択した「赤ちゃん」の高可用性ソリューションは、 Group Replication(グループレプリケーション

  • MySQLのヒストグラム統計 (MySQL Server Blogより) | Yakst

    MySQLでもついにヒストグラム統計を利用した実行計画作成がサポートされるようになりました。作成/削除の方法やどのようなときにインデックスと比べて有利か、などについてご案内します。 免責事項 この記事はErik Frøseth氏によるHistogram statistics in MySQL(2017/10/2)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 MySQL 8.0.3では、ヒストグラム統計を作成しオプティマイザがより多くの統計情報を利用できるようにすることができます。このブログ投稿では、どのようにヒストグラム統計を作成し、どのような時に役立つかについて説明しようと思います。 ヒストグラムとは何か クエリーオプティマイザはデータベースの中で、SQLクエリーを可能な限り最も効率の良い実行計画に変換する役割を担っています。 時にはクエリーオプティマイザは最も効

  • 人間らしくコードレビューするには(パート1) | Yakst

    自動化することによりあなたはレビュアーとしてより価値のある貢献ができるようになります。importsの順序やソースコードのファイル名の命名規約などの問題を無視できるならば、機能上の誤りや可読性の問題といった、より関心のある問題にフォーカスすることができます。 オーサーもまた自動化の恩恵を受けます。ケアレスミスを見つけるのに1時間浪費することなく、即座に見つけられます。即座にフィードバックを受けられることで、関係のあることがオーサーの頭に残り、これにより学習が容易となり、修正コストが低くなります。それに加え、彼らが初歩的な誤りについて指摘を受ける必要がある場合、あなたから指摘を受けるよりコンピューターから指摘を受けたほうが彼らの自尊心の観点からはるかに気分がよいわけです。 これらの自動チェックはコードレビューのワークフローの中に入れましょう(例えば、Gitのコミット前のフックやGithub

  • 「MySQL High Availability tools」のフォローアップとorchestratorの追加 | Yakst

    MySQLのクラスター構成が一定規模を超えると自動フェイルオーバーに求められる要件が変化します。orchestratorはGitHubやBooking.comの大規模構成で自動フェイルオーバーを実現しており、数が多くなると顕在化する問題に取り組んでいます。記事ではSeveralninesの高可用を実現する製品の比較記事への投稿に対するorchestratorの考え方や取組み方の違いについて紹介します。 [MySQL]原文 “MySQL High Availability tools” followup, the missing piece: orchestrator | code.openark.org (English) 原文著者 Shlomi Noach 原文公開日 2017-04-06 翻訳依頼者 翻訳者 taka-h 翻訳レビュアー doublemarket 原著者への翻訳報告未

    「MySQL High Availability tools」のフォローアップとorchestratorの追加 | Yakst
  • CPU使用率は間違っている | Yakst

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

    CPU使用率は間違っている | Yakst
  • MySQLのレプリケーション手法の違い | Yakst

    ソリューションエンジニアチームに所属する筆者が、今では様々な手法が存在するレプリケーション機能について、改めて特徴や注意点を解説しつつ、レプリケーションのよくある「誤解」に対してもお答えしています。 このブログ記事では、MySQL(および Percona Server)環境におけるレプリケーション手法に関して改めて考察を行いたいと思います。あわせて、時折見受けられるレプリケーションの間違った考え方についても考えてみます。 私がソリューションエンジニアとして働き始めてからというもの、沢山の情報が公開されているにも関わらず、レプリケーションに対する「誤解」や「不完全な理解」が無くならないことを日々感じていました。 そもそもレプリケーションとは何か? レプリケーションは、1つのデータベースにデータを蓄積するだけでなく、別のデータベースにデータを複製し、転送することを保証してくれる機能です (複製

    MySQLのレプリケーション手法の違い | Yakst
  • GitLabのデータ消失に対するアドバイス | Yakst

    GitLabのデータベースが消失してしまった事故に関して、PostgreSQLのコミッターであり、PostgreSQLに関するコンサルティング会社2ndQuadrantのCTOでもあるSimon Riggs氏からの分析とアドバイス。 GitLabのみなさん、PostgreSQL 9.6とレプリケーション機能、バックアップの仕組みを使ってくれてありがとう。 今回、GitLabのデータベースが消えてしまったのは残念です。 https://about.gitlab.com/2017/02/01/gitlab-dot-com-database-incident/ 振り返りの分析に対するコメントができるように、こういった情報を公開してくれてどうもありがとう。 レプリケーションの遅延を監視していたのはいいことですし、私としてはとてもうれしいです。4GBのレプリケーション遅延は問題ないこともありますし、

  • RethinkDBはなぜ失敗したのか | Yakst

    つまり、これらのマーケットは小さく、しかもデータベースのマーケット自体よりも小さいのです。とは言え、どれかが他よりもマシになりうるでしょうか? マネージドホスティングは、質的にはユーザのためにAWSでデータベースを動かすことで、そうすることでユーザたちは自分で動かす必要がなくなります。これらのサービスを使う代わりになるのは、AWSに自分でデータベースを立てることです。したがって、マネージドなデータベースホスティングサービスが課金できる額には、非常に厳しい上限があることになります。Compose.ioやmLabが、RethinkDBよりも1桁あるいは2桁多いユーザを抱えるMongoDBを提供していることを考えて、マネージドホスティングを提供することには少しの良い点もないという結論を下しました。 Database as a Serviceはマネージドホスティングの更に複雑なバージョンです。D

    RethinkDBはなぜ失敗したのか | Yakst
  • MySQL 8.0 Lab版: MySQLの (再帰)共通テーブル式(CTE) | Yakst

    免責事項 この翻訳は MySQL Server Blog の 記事 をユーザーが翻訳したものであり、Oracle公式の翻訳ではありません。 MySQL開発チームはこのたび Lab版 のMySQLサーバーをリリースしました("MySQL Server 8.0.0 Optimizer" として公開されています) 私が開発したこのリリースの特徴的な機能は (再帰)共通テーブル式…(再帰)CTE, (再帰)サブクエリー処理, WITH [RECURSIVE] 句としても知られています…です。 3年前、私はCTEをエミュレートする方法を ブログ で紹介しました。しかし、MySQLは今や物のCTEを備えました。偽物ではなく! これはこの新機能の全ての詳細を紹介するブログポストの最初の一つです。 派生テーブルはFROM句のサブクエリーです。下記の太字の部分がそれにあたります。 SELECT … FRO

    MySQL 8.0 Lab版: MySQLの (再帰)共通テーブル式(CTE) | Yakst
  • MySQLのメモリー使用量を最適化する設定のベストプラクティス | Yakst

    Percona Data Performance Blogの翻訳。Percona CEOのPeter Zaitevによる、MySQLのメモリー使用量をどのように決めるべきか、またそれを決める時に気にするべきことは何かについてのまとめ。 この記事では、最適なMySQLのメモリー使用量を設定するためのベストプラクティスを扱おうと思います。 使用できるメモリーのリソースをどのように使うか正しく設定するのは、MySQLを最適なパフォーマンスでかつ安定して使うために最も重要なことのひとつです。MySQL 5.7では、デフォルトの設定では非常に少ない量のメモリしか使いません。デフォルトのままにしておくのは、最も良くないことのひとつでしょう。しかし、不適切に設定してしまうと、パフォーマンスを更に悪くする(あるいはクラッシュする)ことにもなりかねません。 MySQLのメモリ使用量を設定するにあたっての最初

    MySQLのメモリー使用量を最適化する設定のベストプラクティス | Yakst
  • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

    NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか? Netflixには、多数のEC2 Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を

    6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst
  • 6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst

    NetflixのシニアパフォーマンスアーキテクトであるBrendan Gregg氏による、Linuxサーバにログインして60秒でまず調べることのまとめ。 パフォーマンス問題でLinuxサーバーにログインしたとして、最初の1分で何を調べますか? Netflixには、多数のEC2 Linuxからなるクラウドがあり、そのパフォーマンスを監視したり調査したりするための数々のパフォーマンス分析ツールがあります。その中には、クラウド全体にわたる監視を行うAtlasや、オンデマンドにインスタンスの分析を行うVectorがあります。これらのツールは多くの問題を解決する手助けをしてくれますが、各インスタンスにログインし、標準的なLinuxパフォーマンスツールを実行する必要がある場合もあります。 この記事では、すぐ使えるはずの標準的Linuxツールを使いコマンドラインにおいて、最適化されたパフォーマンス調査を

    6万ミリ秒でできるLinuxパフォーマンス分析 | Yakst
  • SYS.SESSIONをSHOW PROCESSLISTの代わりに使う(MySQL Server Blogより) | Yakst

    MySQL 5.7から利用可能となったSYSスキーマ。おなじみのSHOW PROCESSLISTよりも多くの属性が取得可能で、DBAの方々にとって、問題発生時の切分けに大活躍することでしょう。クエリの進捗、一時テーブルの発生、コネクション属性などが取得できます。 免責事項 この記事はMorgan Tocker氏によるMySQL Server Blogの投稿「Using SYS.SESSION as an alternative to SHOW PROCESSLIST」(2016/1/26)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 最近のMySQLサーバーのinformation_schemaやperformance_schemaには役に立つメタデータがたくさんあり、これによってデータベースサーバーの内部で何が起きているかがわかりやすくなります。しかし、このデータ

    SYS.SESSIONをSHOW PROCESSLISTの代わりに使う(MySQL Server Blogより) | Yakst
  • PostgreSQL 9.5でリリースされるUPSERT以外の注目機能 | Yakst

    PostgreSQL 9.5のα版リリースに伴うUPSERT以外の注目機能(列のセキュリティー、ブロックレンジインデックス、JSONB、ソート高速化)についてのまとめ記事です。 出典について この記事はCOMPOSE内のDJ WALKER-MORGAN氏による「Beyond Upsert - Coming in PostgreSQL 9.5」(2015/7/2)を翻訳したものである。 PostgreSQL 9.5のα版がリリースされた(β版は8月)のに伴い、SQLデータベースの次のバージョンの新機能の一覧がより明らかになった。 我々は9.5へのUPSERT機能の追加について以前話してきたが、それはユーザーに見える機能の1つにすぎず、今年の後半に来るべき他の機能についてみてみる良いタイミングとなった。 列のセキュリティー より興味深い追加機能の1つとして、少なくとも多くのユーザーが同じデータ

  • Amazon Aurora : パラメーターから見るその詳細(Percona Data Performance Blogより) | Yakst

    Amazon Aurora : パラメーターから見るその詳細(Percona Data Performance Blogより) 出典について この記事はPercona Data Performance Blog内のVadim Tkachenko氏によるAmazon Aurora – Looking Deeper(2015/11/16)を翻訳したものです。 最近、私のPerconaの同僚であるYves Trudeauと業界の仲間であるMarco TusaAmazon Auroraに関する記事を発表しました。実際のところ、Amazon Auroraは最近のホットな話題で、お客様からもAurora技術に関して多くの質問をいただいています。私は自分の意見を明らかにすることを決心しました。個人の実際に手を動かした経験に勝るものはありませんし、それを共有しようと思います。 私がこれから言及する資料

    Amazon Aurora : パラメーターから見るその詳細(Percona Data Performance Blogより) | Yakst
  • MySQLのためのLinuxチューニングヒント | Yakst

    LinuxMySQLサーバで最低限やっておかなくてはならないファイルシステム、メモリ、CPUに関する設定のメモ。 December 7, 2013 By Alexander Rubin 恐らくほとんどのMySQL番環境はLinux上で動いていることだろう。なので、MySQLのパフォーマンスを上げるのに有用な、最も重要なLinuxのチューニングのためのヒントについて書こうと決めた。特に新しい情報はなくて、どれもよく知られているものではあるが、ブログ記事にまとめてみる。 ファイルシステム ext4 (またはxfs) をnoatimeオプション付きでマウント スケジューラはdeadlineかnoop # echo deadline >/sys/block/sda/queue/scheduler grub.confに"elevator=deadline"を追加 (詳細はLinuxスケジューラと

    MySQLのためのLinuxチューニングヒント | Yakst
  • MySQL 5.6でスレーブをクラッシュセーフにするには | Yakst

    MySQL Performance Blogの翻訳。MySQL 5.6の新機能である、リレーログのリカバリ機能を使って、クラッシュ誤にスレーブが自動復旧するように設定する方法。 September 13, 2013 By Stephane Combaudon スレーブがクラッシュした時にもリカバリ可能(クラッシュセーフ)に設定できるのは、MySQL 5.6のレプリケーション関連の大きな改善の一つだ。しかし、正しくこの機能を使うにはどう設定したらよいのか混乱してしまいがちなので、ここで手順をはっきりさせておこう。 概要 スレーブのMySQLを停止 relay_log_info_repository = TABLEとrelay_log_recovery = ONをmy.cnf追記 MySQLを再起動して待つ 細かな詳細 クラッシュセーフなスレーブを作りたい時に、なぜ上のような設定をしなければな

    MySQL 5.6でスレーブをクラッシュセーフにするには | Yakst
  • MySQL 5.0から5.7へ直接'インプレース'アップグレードする | Yakst

    MySQL 5.7では、従来はメジャーバージョン1世代しかサポートされなかったmysql_upgradeによるアップグレードがMySQL 5.0以降からのアップグレードで利用可能になったらしい。 免責事項 この翻訳は MySQL Server Blogの記事をユーザーが翻訳したものであり、Oracle公式の翻訳ではありません。 文 この記事はMySQLのアップグレードに関する2部作の2番目である。1つ目の記事は mysqldumpを使って5.0から5.7に直接アップグレードする で、mysqldumpを利用したアップグレードの挙動について言及している。我々はこれを'ダンプ'アップグレードと呼んでいる。この記事では我々が`インプレース'アップグレードと呼んでいる、バイナリーアップグレードやライブアップグレードとしても知られているやり方について言及する。 'ダンプ'アップグレードは何かの変更

    MySQL 5.0から5.7へ直接'インプレース'アップグレードする | Yakst