MySQLセントス6と7のパフォーマンス比較

I.はじめに

今年はデータベースサーバーのOSをcentos6からcentos7にアップグレードする予定です。実際には、アップグレード前にパフォーマンスストレステストを実行します。この記事では、圧力テストの記録と結果を共有します。

2つの圧力テストの準備###

2.1 圧力測定方法####

sysbench-0.5を使用して、それぞれ500wのデータを持つ10個のテーブルを作成し、並列処理はそれぞれ12 24 36 48 60 72です。各同時ストレステストは4時間、合計24時間です。圧力テストコマンドは次のとおりです

/opt/yz-sysbench/bin/sysbench --test=/opt/yz-sysbench/share/sysbench/oltp.lua --oltp-tables-count=10 --oltp-table-size=5000000 - -mysql-db=sysbench --mysql-user=sysbench --mysql-password=sysbench --mysql-socket=/srv/my3306/run/mysql.sock --max-time=14400 --max-requests=0 --num-threads=12 --oltp-test-mod e=complex run

注:sysbenchはローカルにインストールされ、ストレステストのためのネットワーク相互作用の時間損失はほとんどありません。

2.2 ターゲットデータ####

データベースのパフォーマンスをプレッシャーテストするため、今回は主にデータベースのパフォーマンスqps tps、host io、cpu、およびその他のパフォーマンスインジケーターを監視します。

3つの圧力テストデータ###

3.1 qps

3.2 insert /delete

sysbenchのoltpモードでは、挿入と削除の比率が同じであり、圧力テストの1秒あたりのtpsデータが同じであるため、これらがまとめられます。

3.3 パフォーマンスの更新####

3.4 cpuioコントラスト####

Centos 7のcpu負荷はcentos6よりわずかに低く、io使用率はcentos6よりも高くなっています。

3.5 ホットスポットスパイクシーン####

最初に記事を読むことをお勧めします[ホットな製品アップデートの最適化計画](https://mp.weixin.qq.com/s?__biz=MzI4NjExMDA4NQ==&mid=2648450906&idx=1&sn=597580c87ee626985da829367e5fd133&scene=21#wechat_redirect)

データベースの[データセキュリティ](https://cloud.tencent.com/solution/data_protection?from=10680)を向上させるために、MySQLはデータ配置の戦略を制御する2つのパラメータを設定します。現在の設定では、トランザクションが送信されるたびにディスクにデータを書き込みます。利点はデータセキュリティです。最も極端なケースでは、トランザクションが失われ、その悪影響により多数のIO操作が発生します。

もう1つのポイントは、データベースによる同じ行の更新の同時実行は、すでにロックを保持している他のセッションによってブロックされ、それが自身の参加によってデッドロックを引き起こすかどうかを判断する必要があることです。今回の複雑さは、1000の場合、O(n)です。リクエストごとに、各スレッドは他の999スレッドとデッドロックしているかどうかを確認する必要があります。他のスレッドが他のロックを保持していない場合、約50w回(計算方法999 + 998 + ... + 1)。この種のロックの待機とデッドロックの競合のチェックには、莫大な時間コストがかかります。

コア最適化パラメーター

sync_binlog=0--システムに渡してbinloginnodbをブラッシングします_flush_log_at_trx_commit=0--REDOバッファをディスクinnodbに毎秒フラッシュします_deadlock_detect=OFF       --デッドロック検出innodbをオフにします_lock_wait_timeout=2

ストレステストシナリオ:

CREATE TABLE `seckill`(`id`int(11) DEFAULT NULL,`num`bigint(20) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
insert into seckill(id,num)values(1,200000000000000);
mysqlslap  -uroot -h127.0.0.1-P 3316--concurrency=72--create-schema='test'--query='begin;update seckill set num=num-1 where id =1 and num>1;commit;'--number-of-queries=500000

メインのシミュレーションデータベースは同時実行性の高いシナリオにあり、同時実行数は72、96、144、192、256のアクティブセッションの同時実行に設定されています。

スパイクシナリオでは、centos 7のパフォーマンスは空に逆らっており、同じ条件下で、centos 6の3倍以上です。パラメータを調整した後、** centos 7の同時更新は1w以上**になる可能性があります。もちろん、実稼働環境の製品です。控除、複数のクエリがあり、挿入、更新、パフォーマンスが低下します。ただし、前年比では、パフォーマンスが大幅に向上します。

3.4 分析####

圧力テストの結果から、qpscentos7のパフォーマンスの向上は明らかです。 Qpsは20%〜40%増加しました。また、tpsで20%を超えるパフォーマンスの向上が見られます。実稼働環境でのパフォーマンスを楽しみにしています(複雑なビジネスSQLを使用すると、パフォーマンスの向上はsysbenchほど明白ではないと推定されます)。

4つの要約###

新しいシステムをテストすることは非常に興味深いですが、Centos 7にはMySQLのパフォーマンスに影響を与える最適化がありますか?これのために尾を残して、次回それを分解してください。すでにcentos7またはredhat7を本番環境で使用している友人も、発生した問題やその他の運用および保守への影響を共有するためのメッセージを残すことができます。

5つの卵###

最近、MGRの技術を学び始め、たまたまYeJinrong氏と元同僚のFengGuangpuに会い、「MySQLグループレプリケーションの詳細な理解」というコースを受講しました。

このコースは、基本、上級、実践の3つのモジュールに分かれており、基本原則、実装の詳細、実践的なガイダンスなどの側面からMGRのさまざまな知識ポイントを体系的かつ包括的に学習および習得します。また、MGRの特性と制限、適用可能なシナリオ、および競合についても紹介します。検出原理、フロー制御メカニズム、パフォーマンス最適化など。 **このコースは業界初であり、Zhishutangオンライン教室を通じてオンラインで学ぶことができます。 **元の価格は68元ですが、今すぐ登録して、最初の月の特別価格をわずか48元でお楽しみください。

Teach Fengは、大規模なeコマースデータベースの責任者であり、オンラインデータベースクラスターの安定した効率的な運用を保証し、データベース自動化運用および保守プラットフォームの構築を担当しています。彼は、オープンソースデータベーステクノロジの共有と交換に熱心です。

以下のQRコードをスキャンしてください

Recommended Posts

MySQLセントス6と7のパフォーマンス比較
CentOSでのMysqlのインストールと使用
CentOS7.2はMysql5.7.13をインストールします
CentOSインストールmysql
CentOS7インストールmysql
CentOS7はMySQL5.6をインストールします
CentOS8はMySQL8.0をインストールします
CentOS7はmysql8をインストールします
CentOS7はMySQL8をインストールします
CentosMySQL8構成
centos7.5インストールmysql5.7.17
CentOS7でのmysql5.6のデフォルトエンコーディングを変更します
CentOS6.5オフラインインストールMySQL5.6.26
Centos7にMySQL5.7をインストールします
CentOS 7.2YumはMySQL5.6をインストールします
Centos7インストールMysql8チュートリアル
CentOS8のグラフィカルインストール
Mysql8.0.15インストール構成(centos7)
Centosはmysql8を手動でインストールします
Centos7にmysqlをインストールします
CentOS7はMySQL8.0パスワードをリセットします
Centos7はMysqlデータベースをインストールします
CentOS6.5の下にmysql5.1をインストールします
Centos7でのJDK、mysql、tomcatの環境構成
CentOS環境でのMySQLインポートファイルの失敗の問題
CentOS7はopenjdk、tomcat、mysqlプロセスの紹介をインストールします
mysqlをcentosにオンラインでインストールする
Centosmysqlのインストールと構成
centosはyumを介してmysqlをインストールします
LinuxCentosにMySQL8.0.16をインストールします
centos7へのグラファイトの展開
CentOS6.xインストールmysql5.7レコード
LinuxにMySQLをインストールする(CentOS 7)
Oracle11gのCentos7サイレントインストール
CentOSmysql構成マスタースレーブレプリケーション
Centos6インストールmysql5.7.xシリーズ
CentOS8.0ネットワーク構成の実装
DockerのCentOS環境インストール
CentOS8はMySQL8をインストールします(プロテスト)