クラウドサーバークラスタのパフォーマンスのトラブルシューティングの注意事項

著者:天李(WX formyz)

私のアドバイス

現在、(いくつかのプログラマを含む)一部の人は、クラウドホスティング、オンライン曹操、またどのような(一般的に犬の運用および保守として知られている)、プロのシステム管理者の設定に関するインストールマニュアルであると考えている残っています。もちろん、これはまた、クラウドサービスプロバイダーの宣伝があることを意味(、心配のない安定性をクラウドホストを買うために、データは一度、すべての投げます)。それは本当に本当?アプリケーションがトラフィックの日でない場合には、少数の人々が訪れ、実際にはフルタイムのシステム管理者を雇うためにお金を費やすことはありません。あなたは、インターネット上で大勢の人々を養う場合は、だけでなく、上記の認識だけでなく、より多くのユーザーがアクセスすることを願って、Iのみああ...

 

非システム管理者が展開した環境

パブリッククラウド内のアプリケーション、すべての。負荷分散は、4つのWebアプリケーションは、共有データディスク(共有プログラムコード)は、データベース(マスタスレーブ)と他の成分による。構造上の観点からは、ああ、問題ありません。そのため、長い時間のために、誰が何を私たちをサポートするために来なかった、我々は、これらのアプリケーションの存在を知りません。

 

秋が来た、まあ良い天気の帝国、確かに我々は、天候に感じるだけでなく、それの楽しみ!しかし最近では、QQのグループは、昔の人々は、すべてのサーバーの負荷が急増したプロジェクト4を言って、呼び出しをサポート。数百11:00負荷エネルギーへ21時00分。無駄に数日間の関係者の調査は、(私自身は、多くのことを笑って)と言いました。

001.JPG

 

 

シーンを調査

nginxの+ PHP + MySQLのアプリケーションは、その後、可能なボトルネックは、ローカルで調整することができるが、一般的に含まれる:システム構成、PHPの設定、データベースの構成を(負荷分散クラウドサービスプロバイダは、調整可能欠きます)。さらに騒ぎがなければ、リマインダはそれの健康を見て、とても心配していました。

QQ画像20190830102044.png

私の神、それほど高く最初に実行し、このように、死んでいません。CPU高負荷のスーツに加えて、メモリは、大部分が消耗してきました。過去の経験によると、別のサーバーの参照からそれを私の弟を手配し、その後、(デフォルトのsystcl.confが設定されていない)システムパラメータを設定し、それを設定し、有効にするにsysctl -pを実行するために問題がある可能性があります。このようなフォローアップ観測のピークへのアクセスとして、結果が悪い、個人的に持っているようです。

 

調査と処理

ログのピーク1時間前にアクセスし、選択した時点、。

 

仕上げにメモリは、psのプロセスを見るものを見てみましょう、我々は、PHPの多数を行いました。最初は、ユーザーがデータを要求した後疑わ、順序で効果的にプロセスをシャットダウンすると、PHPの同意を得て、リソースを解放サービスを再起動します。現時点では、ないかなり右、あまりにも、再びメモリプロセスを使い果たします!

 

次のコマンドPHPプロセスの統計を繰り返します。

ps auxww|grep php|grep –v grep |wc  -l

ps auxww|grep php|grep –v grep |wc  -l

进程数一直保持不变,数量为601。一個进程占用好几兆内存,600个进程,最低下限耗费数G的内存,负载不高才怪了。

 

打开配置文件php-fpm.conf,一眼就看到问题所在

002.JPG

进程管理被错误的设置成static(静态),最大子进程为600,那么一旦启动php,不管有没有必要,都会启动一个主进程加600个子进程。配置文件php-fpm.conf 最大子进程这一行以后与动态管理相关的参数,如最大开始进程、最大空闲进程数等一律无效。修正这个问题后,时间差不多到了访问高峰期。通过人工跟踪加监控报警,基本上算是有很大改进,负载峰值load在50以下。

 

进一步的优化措施

虽然通过修正php参数设置,性能得以改善,但我对这个结果还是不太满意。想再看看有么有可以调整的地方。于是,思路到了磁盘io这个问题上了。

 

四个服务器共享一個云nas硬盘,只保存一份程序员写的php代码。如果io性能不佳,也会严重影响整个应用的性能。

 

用mount指令查看nfs挂接情况,主要是挂接参数,结果如下:

003.JPG

用的是tcp协议,而在以前的实践中,我通常用udp协议(vers=3)进行挂接。考虑到云服务商提供的磁盘性能,用tcp未必就能比udp更好。于是跟其他人协商,在不影响性能访问的情况下,先修改一台服务器对nfs的挂接方式,有进一步性能提升后再修改其他的服务器,最后留一台不做更改,以便观察对比效果。

 

关服务,切换出挂接点目录,卸载nfs,用下列指令挂接重新挂接nfs:

/usr/bin/mount -t nfs -o nolock,vers=3 6e46868719-pgn67.cn-qingdao.nas.aliyuncs.com:/   /data

/ usr / binに/マウント-t NFS -o NOLOCK、VERS = 3 6e46868719-pgn67.cn-qingdao.nas.aliyuncs.com:/ /データ

再起動して、PHPやその他の関連サービス、ピーク期間、効果が5以下に負荷値を下げる、非常に明白です。

QQのスクリーンショット20190830103240.jpg

 

観察、比較、影響クラウドサーバ、NFSの数日後にパフォーマンス上の関節の方法は比較的大きいです。


おすすめ

転載: blog.51cto.com/sery/2436946