はじめに MySQL8.0 を使ったユニットテストがどうにも遅いので、気になって計測してみた。特に Truncate が遅い気がしたので検証。 MySQL5.7(5.7.44)と MySQL8.0(8.0.28)で比較する。 検証コード iwahara/mysql_performance: 記事用のパフォーマンス計測コード 検証用テーブル 検証に使うテーブル定義は以下の通り。主キーのみのテーブルと、index を1つ、2つ、3つ設定したテーブルを用意した。 照合順序は揃えてある。 CREATE TABLE `no_index` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(256) NOT NULL, `code1` varchar(8) NOT NULL, `code2` varchar(8) NOT NU
MySQL 5.7と比べると、8.0の方が性能が良いという噂を簡単な検証で確認してみました。 結論としては、 8.0の方がINSERTは早い8.0の方がSELECTも早いけど、正しくインデックス貼られていれば同程度UPDATE、DELETEは同程度という結果でしたー! なお、サポート期限は以下のようになっています。
この記事は、株式会社カオナビ Advent Calendar 2023 の3日目です。 はじめに 株式会社カオナビの高橋(@kunit)です。 今回は MySQL バージョンアップ(5.7 -> 8.0) で起きた問題とそれに対してどのように対処したのかを書いていこうと思います。 何が起きたのか MySQL 5.7 から 8.0 にバージョンアップをするにあたって、CI およびローカル環境でテストができるように MySQL 8.0 のイメージを作成し、それをつかって各機能の担当者にテストを開始してもらっていたのですが、以下のような事が起きました。 接続を MySQL 5.7 から 8.0 に切り替えただけでテストの時間が3倍くらいかかるようになった そこを変更するだけで3倍遅くなるってやばいぞということで報告してくれた担当者と同じテストを自分でも実施してみると再現性があり、それが以下のどの
自動ワークロード管理 (WLM) では、Amazon Redshift がクエリの同時実行数とメモリの割り当てを管理します。サービスクラスの識別子 100〜107 を使用して、最大 8 つのキューを作成できます。各キューには優先度があります。詳細については、「クエリ優先度」を参照してください。 自動 WLM は、クエリに必要なリソース量を決定し、ワークロードに基づいて同時実行数を調整します。大量のリソースを必要とするクエリがシステムにある場合 (大きなテーブル間のハッシュ結合など)、同時実行数は減ります。軽いクエリ (挿入、削除、スキャン、単純な集計など) を送信すると、同時実行数は増えます。 自動 WLM は、ショートクエリアクセラレーション (SQA) とは別のものであり、クエリの評価方法が異なります。自動 WLM と SQA は連携して動作し、長時間実行されるリソース集約型のクエリが
Amazon Redshift のワークロード管理 (WLM) により、ユーザーはワークロード内の優先順位を柔軟に管理することが可能になります。これにより、実行速度が高く処理時間の短いクエリが、処理時間の長いクエリの後に滞らないようにできます。 Amazon Redshift の WLM は、サービスクラスに従って実行時にクエリキューを作成します。サービスクラスでは、内部システムキューやユーザーからアクセスが可能なキューなどの、さまざまな種類のキューに対する設定パラメータが定義されています。ユーザーから見た場合、ユーザーアクセス可能サービスクラスとキューは機能的に同じものです。一貫性を保つため、このドキュメントでは、ユーザーアクセス可能サービスクラスとランタイムキューは、キューという用語を使用して表します。 ユーザーがクエリを実行すると、WLM は、ユーザーのユーザーグループに従ってクエリ
Amazon RDS Read Replicas provide enhanced performance and durability for RDS database (DB) instances. They make it easy to elastically scale out beyond the capacity constraints of a single DB instance for read-heavy database workloads. You can create one or more replicas of a given source DB Instance and serve high-volume application read traffic from multiple copies of your data, thereby increasi
Windows 11ではスタートメニューの検索バーで、Windows 10ではスタートアイコン横の検索ボックスか検索アイコンで、PC内を検索して一致する結果を呼び出すことができます。しかしこの時、同時に入力したキーワードでBingのWeb検索候補も表示されるため、検索結果が表示されるまで数秒待つ必要があります。テクノロジー系メディアのTom's Hardwareの編集長であるアブラム・ピルチ氏が、WindowsのWeb検索機能を無効にするための操作について解説しています。 How to Disable Windows Web Search and Speed Up Your PC | Tom's Hardware https://www.tomshardware.com/how-to/disable-windows-web-search Windows 11でWindowsキーを押して「g
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。 ジョブのブックマークを使用した処理済みデータの追跡 AWS Glue ではジョブの実行による状態情報を保持することで、ETL ジョブの以前の実行中にすでに処理されたデータを追跡します。この継続状態の情報はジョブのブックマークと呼ばれています。ジョブのブックマークは、AWS Glue で状態情報を保持して、古いデータを再処理しないために役立ちます。ジョブのブックマークを使用すると、スケジュールされた間隔で再実行する際に新しいデータを処理できます。ジョブのブックマークは、ソース、変換、ターゲットなど、さまざまなジョブの要素で構成されています。例えば、ETL ジョブが Amazon S3 ファイルで新しいパーティションを読み込むとします。AWS Glue は、そのジョブに
Lambda 関数以外のターゲットにデータを送信したい、または送信する前にデータをエンリッチしたいという場合は、「Amazon EventBridge Pipes」を参照してください。 AWS Lambda 関数を使用して、Amazon DynamoDB ストリームのレコードを処理します。DynamoDB Streams では、Lambda 関数を使用して、DynamoDB テーブルが更新されるたびに追加の作業を実行することができます。 Lambda はストリームからレコードを読み取り、関数を、ストリームレコードを含むイベントと共に同期的に呼び出します。Lambda はバッチ単位でレコードを読み取り、関数を呼び出してバッチからレコードを処理します。 { "Records": [ { "eventID": "1", "eventVersion": "1.0", "dynamodb": { "
Amazon EC2 Auto Scaling は、アプリケーションの負荷を処理するために適切な数の Amazon EC2 インスタンスを利用できるようにします。Auto Scaling グループと呼ばれる EC2 インスタンスの集合を作成します。各 Auto Scaling グループ内のインスタンスの最小数を指定することができ、Amazon EC2 Auto Scaling グループはこのサイズよりも小さくなることはありません。各 Auto Scaling グループ内のインスタンスの最大数を指定することができ、Amazon EC2 Auto Scaling グループはこのサイズよりも大きくなることはありません。グループの作成時、またはそれ以降の任意の時点で、希望するキャパシティーを指定した場合、Amazon EC2 Auto Scaling によって、グループのインスタンス数はこの数に設
ElastiCache は、フルマネージドのインメモリキャッシュサービスであり、マイクロ秒単位の読み取り/書き込みレイテンシーを提供し、柔軟なリアルタイムユースケースをサポートします。ElastiCache は、アプリケーションとデータベースのパフォーマンスを向上させるのに役立ちます。ElastiCache は、ゲームのリーダーボード、ストリーミング、データ分析など、データの耐久性を必要としないユースケースのプライマリデータストアとして使用できます。ElastiCache は、分散コンピューティング環境のデプロイと管理に関連する複雑さを排除するのに役立ちます。詳細については、Memcached の場合「ElastiCache の一般的なユースケースおよび ElastiCache がどのように役立つか」を、Redis の場合「ElastiCache の一般的なユースケースおよび Elasti
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。 Amazon CloudWatch メトリクスを使用した AWS Glue のモニタリング AWS Glue ジョブプロファイラーを使用して AWS Glue オペレーションをプロファイルおよびモニタリングできます。AWS Glue ジョブから raw データが収集され、ほぼリアルタイムの読み取り可能なメトリクスに加工されて、Amazon CloudWatch に保存されます。これらの統計は CloudWatch に保持されて集計されるため、履歴情報にアクセスしてアプリケーションの動作をより的確に把握できます。
Kubernetes Horizontal Pod Autoscaler は、そのリソースの CPU 使用率に基づいて設定されたデプロイ、レプリケーションコントローラー、またはレプリカセット内の Pods の数を自動的にスケーリングします。これにより、アプリケーションは需要の増加に合わせてスケールアウトしたり、リソースが不要になったときにスケールインしたりできるため、ノードを他のアプリケーションに解放できます。ターゲットの CPU 使用率を設定すると、Horizontal Pod Autoscaler はターゲットを満たすようにアプリケーションをスケールインまたはスケールアウトします。 Horizontal Pod Autoscaler は、Kubernetes の標準 API リソースであり、動作するには、メトリクスソース (Kubernetes メトリクスサーバーなど) が Amazo
こんにちは、札幌在住 AWS 事業本部 オペレーション部(通称オペ部)の池田です。オペ部ではクラスメソッドメンバーズにご加入いただいているお客様が直面されたお困りごとや疑問など、様々なお問い合わせに対して各種ドキュメントや技術検証結果のご案内をしたり、場合によっては AWS と連携してお客様が直面している問題解決の支援を行なっています。 本記事では、タイトルにある通り実際にいただいた「RDS の CPU 使用率が(ほぼ)100% 何が原因なの?」というお問い合わせの中から、代表的な事例とその調査方法をご紹介したいと思います(今回も全ての事例を網羅できているわけではありませんが、調査方法の参考にしていただけると嬉しいです)。 はじめに RDS の CPU 使用率が 100% あるいは ほぼ 100% となる原因は実に様々です。そもそも選択したインスタンスのスペックが低すぎる場合、設計上想定し
注:Amazon RDS では、DB インスタンスで実行されている他のタスクよりもワークロードの優先度が高くなります。これらのタスクに優先順位を付けるには、ワークロードタスクの ** Nice 値を高くします。そのため、拡張モニタリングでは、 Nice% ** はワークロードがデータベースに対して使用している CPU の量を表します。 拡張モニタリングを有効にすると、DB インスタンスに関連付けられている OS プロセスリストも確認できます。拡張モニタリングには、最大 100 のプロセスが表示されます。これにより、CPU とメモリの使用量に基づいて、パフォーマンスに最も大きな影響を与えるプロセスを特定できます。 拡張モニタリングのオペレーティングシステム (OS) ** プロセスリストセクションで、 OS ** プロセスと ** RDS ** プロセスを確認します。mysqld プロセスま
Amazon S3 Intelligent-Tiering ストレージクラスは、3 つのアクセス階層に自動的にオブジェクトを保存します。1 つの階層は高頻度アクセス用に最適化され、1 つの低コスト階層は低頻度アクセス用に最適化されます。またもう 1 つの極めてコストの低い階層は、ほとんどアクセスされていないデータに最適化されます。オブジェクトのモニタリングおよびオートメーションにかかる月額料金を抑えるために、S3 Intelligent-Tiering はアクセスパターンをモニタリングし、30 日間連続してアクセスがなかったオブジェクトを、低頻度アクセス階層に自動的に移動します。90 日間アクセスされていない場合に、オブジェクトはパフォーマンスへの影響や運用上のオーバーヘッドなしで、アーカイブインスタントアクセス階層に移動されます。 数分から数時間でアクセスできるデータのストレージコストを
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。 DynamoDB Auto Scaling によるスループットキャパシティの自動管理 多くのデータベースワークロードは本質的に循環的なものであり、前もって予測することが困難なものもあります。例えば、日中の時間帯に大部分のユーザーがアクティブなソーシャルネットワーキングアプリがあるとします。データベースは日中のアクティビティを処理できる必要がありますが、夜間のスループットに同じレベルは必要ありません。別の例としては、予想以上に急速に普及した新しいモバイルゲームアプリが挙げられます。ゲームがあまりに人気になると、利用可能なデータベースリソースを超過し、パフォーマンスが低下して顧客が不満を感じるようになります。この種のワークロードでは多くの場合、手動介入によってデータベー
このセクションでは、DynamoDB テーブルで、適切なキャパシティモードを選択する方法の概要を説明します。各モードは、スループットの変化に対する応答性や使用に対する請求方法という点で、さまざまなワークロードのニーズを満たすように調整されています。決定を下す際には、これらの要素のバランスを取る必要があります。 利用可能なテーブルキャパシティモード DynamoDB テーブルを作成する場合、オンデマンドまたはプロビジョンドキャパシティモードのいずれかを選択する必要があります。24 時間ごとに 1 回、読み込み/書き込みキャパシティモードを切り替えることができます。唯一の例外は、プロビジョンドモードテーブルをオンデマンドモードに切り替えた場合、同じ 24 時間以内にプロビジョニングモードに戻すことができることです。 オンデマンドキャパシティモード オンデマンドキャパシティモードは、Dynamo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く