1. Docker 起動時の異常なパフォーマンス: 1. ステータスが繰り返し再起動している場合は、コマンドで確認します。 $ docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 21c09be88c11 docker.xxxx.cn:5000/xxx-tes/xxx_tes:1.0.6 "/usr/local/tomcat..." 9日前 再起動中 (1) 1秒未満前 xxx10 2. Docker ログには明らかな問題があります。 $docker logs [コンテナ名/コンテナID] 2. Docker 起動異常の考えられる原因: 2.1. メモリ不足 Docker を起動するには少なくとも 2G のメモリが必要です。まず、free -mh コマンドを実行して、残りのメモリが十分かどうかを確認します。 メモリを直接表示する $無料-mh 使用可能な使用済み空き共有バフ/キャッシュの合計 メモリ: 15G 14G 627M 195M 636M 726M スワップ: 0B 0B 0B ログを分析する 時々、メモリが一時的に過負荷になり、一部のプロセスが強制終了することがあります。メモリは十分であるように見えますが、実際には Docker が繰り返し再起動します。Docker ログとシステム ログ情報によるさらなる分析が必要です。 Dockerログの分析 メモリオーバーフローの情報を確認するには、dockerログを確認してください。情報を見つけるには注意深く読む必要があります。一番下には記載されていません。 $docker logs [コンテナ名/コンテナID]|less Java HotSpot(TM) 64 ビット サーバー VM 警告: INFO: os::commit_memory(0x0000000769990000, 1449590784, 0) が失敗しました。エラー = 'メモリを割り当てられません' (errno = 12) # # Java Runtime Environment を続行するにはメモリが不足しています。 # ネイティブ メモリ割り当て (malloc) で、予約済みメモリをコミットするための 1449590784 バイトの割り当てに失敗しました。 # 詳細情報を含むエラー レポート ファイルは次のように保存されます。 # //hs_err_pid1.log Java HotSpot(TM) 64 ビット サーバー VM 警告: INFO: os::commit_memory(0x0000000769990000, 1449590784, 0) が失敗しました。エラー = 'メモリを割り当てられません' (errno = 12) # # Java Runtime Environment を続行するにはメモリが不足しています。 # ネイティブ メモリ割り当て (malloc) で、予約済みメモリをコミットするための 1449590784 バイトの割り当てに失敗しました。 # 詳細情報を含むエラー レポート ファイルは次のように保存されます。 # /tmp/hs_err_pid1.log Java HotSpot(TM) 64 ビット サーバー VM 警告: INFO: os::commit_memory(0x0000000769990000, 1449590784, 0) が失敗しました。エラー = 'メモリを割り当てられません' (errno = 12) # # Java Runtime Environment を続行するにはメモリが不足しています。 # ネイティブ メモリ割り当て (malloc) で、予約済みメモリをコミットするための 1449590784 バイトの割り当てに失敗しました。 # ログ ファイルを保存できません。画面にダンプします。 # # Java Runtime Environment を続行するにはメモリが不足しています。 # ネイティブ メモリ割り当て (malloc) で、予約済みメモリをコミットするための 1449590784 バイトの割り当てに失敗しました。 # 考えられる理由: # システムの物理RAMまたはスワップ領域が不足しています # 32ビットモードでは、プロセスサイズの制限に達しました # 考えられる解決策: # システムのメモリ負荷を軽減 # 物理メモリまたはスワップ領域を増やす # スワップバッキングストアがいっぱいかどうか確認する # 64 ビット OS で 64 ビット Java を使用する # Java ヒープサイズを減らす (-Xmx/-Xms) # Javaスレッドの数を減らす # Java スレッドのスタック サイズを減らす (-Xss) # -XX:ReservedCodeCacheSize= でより大きなコードキャッシュを設定します # この出力ファイルは切り捨てられているか不完全である可能性があります。 # # メモリ不足エラー (os_linux.cpp:2756)、pid=1、tid=140325689620224 # # JRE バージョン: (7.0_79-b15) (ビルド) # Java VM: Java HotSpot(TM) 64 ビット サーバー VM (24.79-b02 混合モード linux-amd64 圧縮 oops) # コアダンプが書き込まれました。デフォルトの場所: //core または core.1 # システムログを分析する システム ログを確認すると、メモリ オーバーフローによりプロセスが強制終了された記録が多数見つかりました。 $grep -i 'メモリ不足' /var/log/messages 4月7日 10:04:02 centos106 カーネル: メモリ不足: プロセス 1192 (java) を強制終了するか、子プロセスを犠牲にする (スコア 54) 4月7日 10:08:00 centos106 カーネル: メモリ不足: プロセス 2301 (java) を強制終了するか、子プロセスを犠牲にする 4月7日 10:09:59 centos106 カーネル: メモリ不足: プロセス 28145 (java) を強制終了するか、子プロセスを犠牲にする (スコア 52) 4月7日 10:20:40 centos106 カーネル: メモリ不足: プロセス 2976 (java) を強制終了するか、子プロセスを犠牲にする (スコア 54) 4月7日 10:21:08 centos106 カーネル: メモリ不足: プロセス 3577 (java) を強制終了するか、子プロセスを犠牲にする 4月7日 10:21:08 centos106 カーネル: メモリ不足: プロセス 3631 (java) を強制終了するか、子プロセスを犠牲にする (スコア 47) 4月7日 10:21:08 centos106 カーネル: メモリ不足: プロセス 3634 (java) を強制終了するか、子プロセスを犠牲にする 4月7日 10:21:08 centos106 カーネル: メモリ不足: プロセス 3640 (java) を強制終了するか、子プロセスを犠牲にする 4月7日 10:21:08 centos106 カーネル: メモリ不足: プロセス 3654 (java) を強制終了するか、子プロセスを犠牲にする 4月7日 10:27:27 centos106 カーネル: メモリ不足: プロセス 6998 (java) を強制終了するか、子プロセスを犠牲にする (スコア 51) 4月7日 10:27:28 centos106 カーネル: メモリ不足: プロセス 7027 (java) を強制終了するか、子プロセスを犠牲にする 4月7日 10:28:10 centos106 カーネル: メモリ不足: プロセス 7571 (java) を強制終了するか、子プロセスを犠牲にする 4月7日 10:28:10 centos106 カーネル: メモリ不足: プロセス 7586 (java) を強制終了するか、子プロセスを犠牲にする 2.2. ポートの競合 Docker のリスニング ポートが他のプロセスによって占有されています。この問題は、新しくデプロイされたサービスや、元のマシンに新しいバックグラウンド サービスをデプロイするときに発生しがちです。そのため、デプロイ前にコマンドを実行して、ポートが占有されているかどうかを確認する必要があります。オンラインになった後にポートが占有されていることが判明した場合は、使用可能なポートに変更して再起動する必要があります。 確認コマンド: $netstat -nltp|grep [計画ポート番号] 3. 対策 3.1. メモリ不足の対策: 対策1: 対策2: 戦略3: 対策4: 3.2 港湾紛争への対策 対策1: 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: MySQL 8.0.11 MSI バージョンのインストールと構成のグラフィック チュートリアル
1. HTMLの概要1.HTML: ハイパーテキスト マークアップ言語。これはプログラミング言語では...
MySQL タイム ブラインド インジェクションの 5 つの遅延方法 (PWNHUB の予期しない解...
1 HTML入門1.1 初めてのコード体験、最初のウェブページの作成XML/HTML コードコンテン...
入力サブシステムフレームワークLinux 入力サブシステムは、上から下に向かって、入力サブシステム ...
通常、IE ブラウザでの CSS の互換性の問題を解決するために、フロート レイアウトが使用されます...
序文フロントエンドフレームワークのヘビーユーザーとして、私はテクノロジーを選択する際にそのエコロジー...
目次シナリオ: サーバーデータベースを毎日定期的にバックアップする必要がある1. まずバックアップス...
インストールパス: /application/mysql-5.7.18 1. 事前準備MySQL 依...
この記事では、配列を走査する 4 つの方法を比較してまとめます。 for ループ: for (let...
rpmコマンドがソフトウェアのインストールに使用するパラメータはどれですか: -i rpm コマンド...
ssh は私が最も頻繁に使用する 2 つのコマンドライン ツールのうちの 1 つです (もう 1 つ...
プロジェクトでは、現在地の緯度経度を取得したり、場所を検索して緯度経度情報を取得したりする必要があり...
オプションに属性 selected = "selected" を追加すると、それ...
<br />ヘッダーはテーブルの最初の行を参照します。ヘッダー内のテキストは中央揃えで太...
目次プロトタイプを理解するプロトタイプオブジェクトを理解するインスタンスプロパティとプロトタイププロ...