検索
ホームページ運用・保守Linuxの運用と保守haproxy 負荷分散 mysql の使用方法

haproxy 負荷分散 mysql の使用方法

Sep 15, 2018 pm 03:54 PM
haproxylinux

この記事の内容は、haproxy ロード バランシング mysql の使用方法に関するものです。必要な方は参考にしていただければ幸いです。

システムは 1 マスター、複数のスレーブ モデルで、読み取りと書き込みの分離はアプリケーション レベルで実装され、挿入、削除、更新、および変更はマスター ライブラリに移行します。奴隷図書館。次に、スレーブ ライブラリの負荷分散を行い、keepalived を使用して haproxy を結合しました。

haproxy 負荷分散 mysql の使用方法

早速、始めましょう。

システム環境: centos7

そうは言っても、haproxy の公式コミュニティ Web サイトがいつブロックされたのかはわかりません...残念ながら、haproxy の最新の安定バージョンは、次のリンクからダウンロードできます。住所。

# wget https://www.haproxy.org/download/1.8/src/haproxy-1.8.9.tar.gz

インストール前に友人に Readme ファイルを読んでもらうことをお勧めします

# cat /usr/src/haproxy-1.8.9/README

haproxy をインストールします。ここでのプレフィックス キーワード PREFIX はインストール ディレクトリを指定します。使用するのは大文字です。通常、ソース コードを通常にインストールする場合は、configure コマンドの後にオプション「--prefix」を追加して区別します。

# tar -zxf haproxy-1.8.9.tar.gz -C /usr/src/
# cd /usr/src/haproxy-1.8.9/
# make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 PREFIX=/usr/local/haproxy
# make install  PREFIX=/usr/local/haproxy

haproxy プログラム ユーザーと設定ファイル ディレクトリを作成します

# useradd -M -s /sbin/nologin haproxy
# mkdir /etc/haproxy

このバージョンのパッケージでは、haproxy 構成ファイルはサンプルを提供していません。

#
# touch /etc/haproxy/haproxy.cfg
# more /etc/haproxy/haproxy.cfg
#global    log  /dev/log   local0 info    log  /dev/log 
  local1 notice    pidfile   
    /var/run/haproxy.pid    maxconn     400000  
      user        haproxy    group    
         haproxy    nbproc      1    daemon
#defaults    mode   http    log   global 
   option http-server-close    option            
         redispatch    retries          
      0    timeout http-request  
        10s    timeout queue     
              1m    timeout connect     
                  10s    timeout client      
                      1m    timeout server     
                           1m    timeout http-keep-alive  300s  
             timeout check           10s    maxconn    
                   100000
listen mysql_select  bind *:3306  mode tcp  balance roundrobin 
 #balance source  #option mysql-check user haproxy  timeout server  15s  
 timeout connect 15s  server mysql162 192.168.5.162:3306 check port 3306 inter 5000 fall 5 
  server mysql163 192.168.5.163:3306 check port 3306 inter 5000 fall 5  
  server mysql164 192.168.5.164:3306 check port 3306 inter 5000 fall 5
listen stats        mode http        bind 0.0.0.0:7979        stats enable            stats hide-version        stats uri /haproxy?hello        stats realm Haproxy\ Statistics        stats auth qkc:pwd@123        stats admin if TRUE


# haproxy のデフォルトのログはシステムの syslog に出力されますが、haproxy

ログをより適切に管理するために、通常は実稼働ラインで独立して定義します。方法は次のとおりです。

(1) haproxy.cfg のログ構成オプションを変更し、次の構成をグローバルに追加し、情報ログと通知ログを別のファイルに記録します。

log  /dev/log   local0 info
log  /dev/log   local1 notice

(2) rsyslog 設定の変更

管理を容易にするために、haproxy 関連の設定は /etc/rsyslog.d/haproxy.conf で独立して定義されます。設定のこの部分は、情報ログと通知ログをそれぞれ /var/log/haproxy181/{haproxy181-info.log,haproxy181-notice.log} ファイルに記録します。ここで、「& ~」は、ログがファイルに書き込まれた後であることを意味します。ログ ファイル、rsyslog このメッセージの処理を停止します。ここで設定する構文は、rainerscript スクリプト言語で記述されています。

# vim /etc/rsyslog.d/haproxy.conf
if ($programname == 'haproxy' and $syslogseverity-text == 'info')
 then -/var/log/haproxy181/haproxy181-info.log& ~if 
 ($programname == 'haproxy' and $syslogseverity-text == 'notice') 
 then -/var/log/haproxy181/haproxy181-notice.log& ~

haproxy.cfg 設定ファイルの構文が正しいか確認してください

# /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c

問題がなければ、-c オプションを削除して、 start haproxy

# /usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg

[root@server181 haproxy]# ss -antulp | grep haproxy
tcp    LISTEN   0  128   *:3306     *:*    users:(("haproxy",pid=3315,fd=4))
tcp    LISTEN   0  128    *:7979   *:*    users:(("haproxy",pid=3315,fd=6))
ブート時に自動的に開始するように haproxy を設定します

# chmod +x /etc/rc.d/rc.local
# echo '/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg' >> /etc/rc.d/rc.local

テストのために haproxy を接続します

# for i in $(seq 1 10); do mysql -utest -p123456 -h192.168.5.181 -e 'select @@server_id;'; done | egrep '[0-9]'
3306164
3306162
3306163
3306164
3306162
3306163
3306164
3306162
3306163
3306164

次に、別のサーバーを使用して haroxy を実行し、keepalived を統合します。リモート システムは、mysql クライアントを使用して負荷分散 VIP に接続し、ログインし、ヘルス チェック、フェイルオーバー、その他のプロジェクト テストを 1 つずつ実行します。

概要:

haproxy は、非常に高負荷のシナリオであっても、中規模の負荷では CPU 負荷が非常に低く、ユーザー スペース占有率が 5%、システム スペース使用率が 95% であることも非常に一般的です。これは、haproxy プロセスの消費量がシステム スペース消費量の 20 分の 1 以上少ないことを意味します。したがって、OSのパフォーマンスチューニングは非常に重要です。ユーザー空間の占有率が 2 倍になっても、CPU 占有率はわずか 10% であり、これもレイヤー 7 処理がパフォーマンスに与える影響が限定的である理由の説明になります。その結果、haproxy のレイヤー 7 パフォーマンスは、ハイエンド システム上のハードウェア負荷分散デバイスを容易に超える可能性があります。

tcp プロキシをサポートする haproxy の機能により、mysql 読み取りライブラリの負荷分散も実行でき、非常に優れたパフォーマンスを発揮します。

以上がhaproxy 負荷分散 mysql の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
DebianのGitLabのトラブルシューティングDebianのGitLabのトラブルシューティングApr 13, 2025 am 07:45 AM

Debian SystemsにGitLabをインストールおよび構成する際に遭遇する可能性のあるいくつかの一般的な問題があります。いくつかの一般的なトラブルシューティングの手順とソリューションを次に示します。ネットワークのトラブルシューティングサーバーのpingやgitlabページにアクセスできないなど、ネットワークの問題に遭遇した場合、ネットワーク接続が正常かどうかを確認します。ファイアウォール設定がGitLabのデフォルトポート80および443にアクセスできるかどうかを確認します。GitLabサービスが遅いか到達不可能な場合は、サーバーのパフォーマンスの発行は、サーバーのCPU、メモリ、およびディスクスペースの使用量を確認してください。 Tなどのツールを使用します

Debian Apacheログの読み取り速度を最適化する方法Debian Apacheログの読み取り速度を最適化する方法Apr 13, 2025 am 07:42 AM

Debianapacheのログ読み取りの速度を向上させるために、重要なのは適切なツールと戦略を選択することです。次の方法では、ログの読解効率を効果的に改善できます。1。効率的なログ表示ツールテールコマンド:リアルタイムのログの変更を監視、Tail-F/var/log/apache2/access.log View Access logs、Tail-N100-F ...最後の100行を表示します。マルチタイル:比較と分析に便利な複数のログファイルを同時に監視します。 LNAV:リアルタイムの監視と高度な分析をサポートする強力なログ分析ツール。 2。ログ回転戦略ログロテートツールを使用して、ログファイルを定期的に分割して単一のファイルを防止します

Debian Apacheログを介して問題を見つける方法Debian Apacheログを介して問題を見つける方法Apr 13, 2025 am 07:39 AM

この記事では、DebianシステムのApacheログファイルを使用して、サーバーの問題を効果的にトラブルシューティングする方法をガイドします。まず、端末を開き、Nano、VIM、GEDITなどのテキストエディターを使用して、Apacheのアクセスログとエラーログを開きます。これらのファイルは通常、/var/log/apache2/ディレクトリにあり、それぞれaccess.log and error.logという名前です。次のコマンドでそれらを開くことができます:sudonano/var/log/apache2/access.logsudonano/var/log/apache2/error.log次に、ログの内容を分析します。アクセス

Nginxログのセキュリティ問題を防ぐ方法Nginxログのセキュリティ問題を防ぐ方法Apr 13, 2025 am 07:36 AM

nginxログセキュリティは非常に重要であり、機密情報を漏らしたり、悪意のあるアクセスの試みを公開したりする可能性があります。この記事では、nginxログセキュリティの改善に役立つ一連の効果的な手段を提供します。アクセス制御:Nginxログファイルへのアクセスを厳密に制限します。許可された担当者のみがそれにアクセスし、ファイルシステム許可を使用してアクセスを制御できます。同時に、ログの回転とアーカイブ戦略を実装して、ログファイルのスケールを削減し、リスクを減らします。情報脱感作:ログ形式は、機密情報の記録(パスワード、クレジットカード情報など)の記録を避ける必要があります。ログ脱感作ツールまたはカスタムログ形式を使用して、機密データを非表示にします。リアルタイムの監視とアラーム:監視システムを展開して、Nginxログの異常な動作をリアルタイムで追跡します。アラームメカニズムを構成し、

Debianで損傷したバッグをリサイクルする方法Debianで損傷したバッグをリサイクルする方法Apr 13, 2025 am 07:33 AM

Debian Systemで破損したパッケージに遭遇しましたか?心配しないでください、この記事は、システムの安定性を回復するのに役立ついくつかの修理方法を提供します。ステップ1:パッケージリストを更新するパッケージリストが最新であることを確認してください。端末を開き、次のコマンドを実行します。SudoaptupDateステップ2:システムアップグレードすべてのパッケージをアップグレードしてみてください。破損したパッケージを修正することができます:sudoaptupgradeステップ3:依存関係を修正した依存関係を修復する場合は、依存関係を修復してください。

Debian Apacheログで悪意のあるアクセスを識別する方法Debian Apacheログで悪意のあるアクセスを識別する方法Apr 13, 2025 am 07:30 AM

悪意のあるウェブサイトへのアクセスに対する効果的な監視と防御は、Debianシステム上のApacheサーバーにとって重要です。 Apacheアクセスログは、そのような脅威を特定するための重要な情報源です。この記事では、ログを分析し、防御対策を講じる方法について説明します。悪意のあるアクセス動作を識別するApacheアクセスログDebian Systemsは、通常/var/log/apache2/access.logにあります。ログをさまざまな方法で分析できます。ログファイルの場所の確認:まず、Apacheアクセスログの正確な場所を確認してください。これは、システム構成によってわずかに異なる場合があります。コマンドラインツール分析:GREPコマンドを使用して、GREP「404」などの特定のパターンを検索します

Debianメールサーバーのスパムアンチスパムポリシーを設定する方法Debianメールサーバーのスパムアンチスパムポリシーを設定する方法Apr 13, 2025 am 07:27 AM

この記事では、主にPostgrey Graylistメカニズムとスパマッサシンスパムフィルターを使用して、Debian Mail Serverに強力なスパム防止システムを展開する方法を紹介します。 1。greyを使用して灰色のリストを構築してgreyのインストール:次のコマンドを使用してポストガレイソフトウェアパッケージをインストールします:sudoapt-getupdate && sudoapt-get-yinstallpostgreyconfigure postgrey:edit/etc/default/postgreyファイル、Postgrey_optsパラメーターを変更し、遅延時間を設定します(

DebianでTigervncのログを表示する場所DebianでTigervncのログを表示する場所Apr 13, 2025 am 07:24 AM

Debianシステムでは、Tigervncサーバーのログファイルは通常、ユーザーのホームディレクトリの.VNCフォルダーに保存されます。 Tigervncを特定のユーザーとして実行する場合、ログファイル名は通常XFに似ています。1。Log、XF:1はユーザー名を表します。これらのログを表示するには、次のコマンドを使用できます。CAT〜/.VNC/XF:1。LOGまたは、テキストエディターを使用してログファイルを開くことができます。NANO〜/.VNC/XF:1。LOGログファイルへのアクセスと表示には、システムのセキュリティの設定に応じてルート許可が必要になる場合があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境