タグ

performanceとmysqlに関するtvskのブックマーク (7)

  • mysqlslapを使ってRDSのMySQLについて各クラスのパフォーマンス測定 | DevelopersIO

    よく訓練されたアップル信者、都元です。今回はMySQLのクライアント負荷エミュレーションツールmysqlslapを使って、Amazon RDSの性能を測定してみました。 このエントリーの初期版では、クライアントのEC2インスタンスサイズをsmallにしていましたが、クライアント側がボトルネックにならないよう、m3.2xlargeで再測定しています。また、測定回数(iterations)も、初期版では1でしたが、現在は10回の平均を取った数値で再測定しています。 Amazon RDSではdb.t1.microからdb.m2.4xlargeまで様々なインスタンスクラスが選択できます *1。それぞれCPUやメモリの他、I/O性能も「低速」「標準」「高速」といった差別化がはかられています。 とは言え、それぞれのインスタンスクラスにおいて、総合的なパフォーマンスはどの程度なのか、気になりますよね!

  • MySQLの「Sending data」はクライアントへのデータ転送である - 動かざることバグの如し

    MySQLでshow processlistを眺めていたときに「Sending Data」に結構時間を取られていたので調べると以下の記事が出てきた。 tsurugeek.hatenablog.jp 「データの読み込みとフィルタリング」ということだ。 「Sending data」はクライアントへのデータ転送ではなかった。 って言ってるけどMySQLの公式ドキュメントには Sending data スレッドは SELECT ステートメントの行を読み取り、処理して、データをクライアントに送信しています。 この状態で行われる操作は、大量のディスクアクセス (読み取り) を実行する傾向があるため、 特定のクエリーの存続期間にわたる最長時間実行状態になることがあります。 データをクライアントに送信も含まれてるやんけ 結論 MySQLの「Sending Data」は、データの読み込み+フィルタリング+ク

    MySQLの「Sending data」はクライアントへのデータ転送である - 動かざることバグの如し
    tvsk
    tvsk 2019/10/10
    SHOW PROCESSLIST における SELECT 文の "Sending data"。時間がかかっているのはヘビーな読み取り。
  • 大きめのテーブルにカラムやインデックスを追加する際の注意 - LukeSilvia’s diary

    先日大きめ(といっても500万行くらい)のテーブルにインデックス付きのカラムを追加しようとして痛い目にあったので調査。 大きめのテーブルにカラムやインデックスを追加するとどうなるか 今回は単純に、「ALTER TABLE 〜 」で追加しようとしました。追加するカラムは3つで、 varchar(255) インデックスなし varchar(255) ↓のdate 型カラムとマルチカラムインデックスの形式のユニークインデックスあり date インデックスあり SQL を実行し、状況を「SHOW PROCESSLIST」で監視していたら、1つ目のカラム追加で次のような状態に… 最初にState が「copy to tmp table」状態になり、次の状態に遷移するまで1時間かかる 次にState が「Repair with keycache」状態になり、完了までに1時間かかる 次のカラム追加に対す

    大きめのテーブルにカラムやインデックスを追加する際の注意 - LukeSilvia’s diary
    tvsk
    tvsk 2019/10/03
    optimize table の際に出るメッセージ
  • innodb_buffer_pool_sizeのチューニング:どれくらい割り当てる?

    結論としてはinnodbテーブルの全データ量だそうです。 ここ最近はデータベースサーバのリプレースの案件の担当をしているのですが、サーバのサイジングをしていてふと、「どれくらいメモリあれば足りるんだろう」と疑問に思いました。 よく「サーバの全メモリの50%から70%くらい」とか「80%」くらいとか言われますが、それはどちらかというとスワップしないための限界値を示すものであって、理想値ではないですよね。それでいろいろ調べてみたところ、なかなか日語で良いまとめがなかったので、まとめてみようと思います。 目次 そもそもinnodb_buffer_poolとは? 使用状況を確認する(SHOW ENGINE INNODB STATUSでの計測) 適切なinnodb_buffer_pool_sizeは?(チューニング方法) そもそもinnodb_buffer_poolとは? InnoDB maint

    tvsk
    tvsk 2018/01/26
    MySQL の最低限の チューニング項目 InnoDB Buffer Pool Size の策定のしかた
  • MySQLのgeneral_log出力のパフォーマンス影響を調べてみた - なからなLife

    きっかけ みんなで使っているMySQL上のデータを誰かが削除して、犯人探しをしたい、という話から。 別エントリでMySQLのログの種類と監査の手段について触れるけど、Community版だと基的にgeneral_logを使うしか、後追いで誰が何したかを追いかける方法ってないのよね。 で、DB監査が要件に入っていないから、デフォルト通りgeneral_logをOFFにして性能要件固めてスペック決めてるのに、後で事件がおきてから騒ぐっていう。 じゃあ、ONにしたら、どの程度影響があるの?というのが調査の発端です。 試した環境 マシン・OS・MySQLのバージョンなど 2箇所で実験しました。 (A)自宅PC WindowsマシンのVirtualBox上に立てたLinuxMySQL5.6.31 ストレージはUSB3.0経由の外付けHDD(IO DATAのHDCL-UTEシリーズ)で、IOPSは

    MySQLのgeneral_log出力のパフォーマンス影響を調べてみた - なからなLife
    tvsk
    tvsk 2018/01/26
    general_log (監査ログ) 出力による 性能劣化度合のレポート
  • (pdf) MySQLパフォーマンスチューニング概要 - Oracle

    <Insert Picture Here> MySQLパフォーマンスチューニング概要 日オラクル MySQL Global Business Unit Copyright© 2011, Oracle. All rights reserved. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい ては、弊社の裁量により決定されます。 OracleJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文

    tvsk
    tvsk 2017/02/24
    パフォーマンスチューニングの方針策定/経営的判断のインプット
  • 再現性のあるスロークエリーには「SHOW PROFILE」を試してみよう

    MySQLの組み込みプロファイラー SHOW PROFILEステートメントはMySQLサーバー組み込みのプロファイラーから情報を取り出すためのステートメントです。細かいことを言と、これが利用可能かどうかはビルドオプション(cmake -DENABLED_PROFILING=ON)で決まりますが、少なくともOracleが配布しているバイナリーではこのオプションが有効な状態でビルドされているため、ほとんどの環境で利用できるでしょう。 プロファイラーというと小難しく思えますが、「そのクエリーが実行されていた期間、どのStatus(SHOW PROCESSLISTで"State"と表示されているもの)にどのくらいの時間かかったか」を表示してくれるもので、セッション単位でオンラインに有効・無効を切り替えられるため、身構える必要は全くありません。まずはその内容を確認するため、試しに具体的なステートメン

    再現性のあるスロークエリーには「SHOW PROFILE」を試してみよう
    tvsk
    tvsk 2017/02/21
    サーバ組込のプロファイラ。セッションで有効にすると、発行したクエリの実績値を確認できる
  • 1