sql >> データベース >  >> RDS >> Mysql

Dockerコンテナでデータベースを実行する際のパフォーマンスの問題

    Docker自体はほとんどオーバーヘッドを課しません。それは、ホスト上の他のプロセスからプロセスを分離するだけです。ただし、コンテナのパフォーマンスを低下させるためにできることはたくさんあります。

    1. 組み込みVMに親OSのメモリ/CPUの一部のみを提供しながら、Windows/MacOS内で実行します。
    2. コンテナ内のCPUまたはメモリリソースを制限します。
    3. ホストで多数のコンテナーを起動します。 Dockerは魔法ではありません。それぞれ2ギガのRAMを使用するJavaの10個のインスタンスが、ホストをコンテナーの外部でクロールする場合、コンテナーの内部でそれ以上実行されません。
    4. ネットワーキングの複雑さ。各コンテナは、デフォルトで分離されたネットワークブリッジ上でスピンアップされます。この場合、追加のホップを使用するとIOに少し時間がかかる場合があります。また、DNSが適切に構成されていない場合、ルックアップの失敗により余分な遅延が発生する可能性があります。
    5. Dockerでは、ディスクへの直接アクセスなどのベアメタル要件はデフォルトでは許可されていません。特定のデバイスへのアクセスを許可することはできますが、それ以外の場合、アプリのコンテナ化されたバージョンは意図的に分離されます。
    6. ボリューム内のデータは、効率の低い場所にある可能性があります。デフォルトでは/var/ lib / dockerファイルシステムですが、パフォーマンスがさらに低下するNFSマウントを簡単に指すことができます。
    7. 誤って構成されたDB、例:インデックスの作成を忘れています。

    要するに、コンテナ自体が問題になる可能性は低いですが、リンゴとリンゴの比較を行っていることを確認してください。



    1. 新しいMacProを正当化する

    2. MySQL、ポーランド語文字、重複した挿入ステートメント

    3. MySQLでNHibernateguid.comb主キーを使用するときに断片化を回避するにはどうすればよいですか?

    4. AWSEMRPySparkがmysqlに接続します