2017-11-03 6 views
-1

私はMySQLで自分のPHPスクリプトを使用しています。サイトに多数のユーザーがいる場合、CPU負荷が多少高く、RAM使用率が低いことがわかります。たとえば、CPU使用率は約45%、使用RAMは64GBのうち3GBです。CPU負荷をRAMに転送する方法は?

RAMとCPUの使用量を増やすにはどうしたらいいですか?私はMyISAMをMySQLエンジンphp 7.0として使用しています。私はこれを行う方法について一歩一歩説明する答えは必要ありませんが、どのようにそれを乗り越えるべきかわからないので、私はどんな指示にも感謝します。

私はcPanel、WHM、Apacheを使用して専用サーバを持っており、サーバ上のものを完全に制御できます。

+0

CPUとRAMはあなたが "転送"できるものではありません - それらは非常に異なる目的を果たします。 CPUとメモリがどのようにデータベースで使用されているかを読んでみてください。あなたの質問が大して意味をなさないと思うと思います。 –

+0

MyISAMはおそらく良いスタートではありません。行などを更新すると、テーブル全体がロックされます。データベースの設計、結合などによっては、ボトルネックが発生し、キューを制御しながらCPUが増加する可能性があります。まず、InnoDB(行レベルロック)を試してみてください。 PHP 7.1ははるかに優れており、パフォーマンスが向上し、7.0にアップグレードされました。 あなたはまたあなたが持っているCPUを述べなかったが、64GBのRAMを持っていれば、私はまともなものを期待するでしょう。 – MrMarlow

+0

@Derek:RAMやCPU使用率を優先するように調整できるアルゴリズムがあるかもしれません(同じ問題を解決する2つの方法がある場合、1つは高速ですが、もう1つは低速ですがRAMは少なくなります) 。 SQLエンジンのオプティマイザがデータベースクエリを処理する方法を変更すると、OPが望む効果が得られると推測できます。おそらく、プロセッサの使用量を減らすためにチューニングできる 'my.ini'の設定があります。 (FWIW私は質問が特に例のない質問に答えられるとは思わない)。 – halfer

答えて

2

RAMを使用してCPU負荷を軽減する良い方法の1つは、キャッシュです。

つまり、計算にかなりコストがかかるデータ結果が必要な場合は、あらかじめ計算してRAMに保存しておいてから、次回のアプリでその結果が必要になったときに、キャッシュ、おそらくそれらを再計算するよりもずっと安い。

これによく使用されるツールは、MemcachedまたはRedisです。

関連する問題