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 バージョンのインストールと構成のグラフィック チュートリアル
需要シナリオ: 既存の PXC 環境には大量のデータがあります。新しく購入したサーバーをこのクラスタ...
目次1. DHCP サービス (動的ホスト構成プロトコル) 1. 背景2. 概要3. 利点4.DHC...
1.1 データ型の概要データ型は、各フィールドに保存できるデータの種類、保存できるデータの量、保存で...
html4:コードをコピーコードは次のとおりです。 <フォーム> <p>&l...
テストテーブルを作成する -- ---------------------------- -- ch...
この記事の例では、ミニプログラムでリストカウントダウンを実装するための具体的なコードを参考までに共有...
1. インデックスの利点と欠点利点: 高速検索、高速グループ化および並べ替えデメリット: ストレージ...
序文この記事では主にMySQLでトランザクションを開始する方法について紹介します。関連情報については...
1. はじめにSELinux が Linux にもたらす主な価値は、柔軟で構成可能な MAC メカニ...
ステップ1: ローカルイーサネットプロパティをチェックして、VMwareブリッジプロトコルがインスト...
この記事では、CentOS 7.4 サーバーで時刻同期を構成する方法について説明します。ご参考までに...
目次1. 概要1.1 プロトタイプとは何ですか? 1.2 プロトタイプを入手する2. プロトタイプの...
Mysql マスタースレーブ同期の Last_IO_Errno:1236 エラーの原因は何ですか? ...
目次JavaScriptでは、通常、次のコードのようにクラスを簡単に定義できます。 var サンプル...
目次背景element-ui の自動構築はどのように機能しますか?メイクファイル新しい.jsファイル...