仮想メモリとは何ですか? まずはWikipediaからの紹介文をそのまま引用します。
C 言語の変数の場合、& 演算子を使用してそのアドレスを取得できます。これは仮想アドレスなので、このアドレスは仮想であることを意味します。 仮想アドレス メカニズムは必要ありません。単純なマイクロコントローラでは、コードをコンパイルするときに物理的な RAM スペースの配分を指定する必要があります。仮想アドレスの概念はありません。アドレスは RAM 内の物理アドレスを参照します。
導入 弊社が独自に購入したサーバー環境では、通常 1g のメモリを購入しますが、サーバーにインストールされているものが増えると、メモリが不足します。この記事では、メモリが不足する実際の状況をシミュレートし、仮想メモリを変更してシステムが正常に動作するようにする方法を説明します。ここでの環境は ElasticSearch 検索環境を構築することですが、サーバーのメモリは 1g しかありません。以下では、1g の仮想メモリを 4G に変更する方法を説明します。 ElasticSearch環境を構築する 現在、サーバー環境は空で、何も入っていません。まず、ElasticSearch をサーバーにアップロードし、次に jdk と ElasticSearch をインストールします。 JDKをインストールする インストールチュートリアルは後日更新されます(この記事では主に仮想メモリの設定について紹介します。これらのインストールは主にメモリ不足の状態をシミュレートするためです) ElasticSearchをインストールする インストールリンクは後ほど更新されます(この記事では主に仮想メモリの設定について紹介します。これらをインストールするのは主にメモリ不足の状態をシミュレートするためです) ElasticSearch を起動する ElasticSearch を起動すると、起動中にエラーが報告されます。その理由は、サーバーの現在のメモリが ElasticSearch に必要なメモリを満たしていないためです。 [esyonghu@localhost elasticsearch-6.4.0]$ ./bin/elasticsearch [1] 3228 [esyonghu@localhost elasticsearch-6.4.0]$ Java HotSpot(TM) 64 ビット サーバー VM 警告: INFO: os::commit_memory(0x000000008a660000, 1973026816, 0) が失敗しました。エラー = 'メモリを割り当てられません' (errno = 12) # # Java Runtime Environment を続行するにはメモリが不足しています。 # ネイティブ メモリ割り当て (mmap) は、予約済みメモリをコミットするための 1973026816 バイトのマップに失敗しました。 # 詳細情報を含むエラー レポート ファイルは次のように保存されます。 # ログ/hs_err_pid3228.log [esyonghu@localhost elasticsearch-6.4.0]$ サーバーのメモリを確認し、free コマンドを使用します。サーバーのメモリが 1g であることがわかります。この時点で、問題を解決するには仮想メモリを変更する必要があります。 [esyonghu@localhost elasticsearch-6.4.0]$ 無料 -m キャッシュされた未使用の共有バッファの合計 会員番号: 980 582 397 2 23 245 -/+ バッファ/キャッシュ: 313 667 スワップ: 0 0 0 [esyonghu@localhost elasticsearch-6.4.0]$ スワップファイルの作成 /usrディレクトリに入る [root@localhost usr]$ pwd /usr [root@localhost usr]$ スワップフォルダを作成して入力する [root@localhost usr]# mkdir swap [root@localhost usr]# cd swap/ [root@localhost swap]# pwd スワップ [root@localhost スワップ]# スワップファイルを作成するには、コマンド dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=4096 を使用します。 [root@localhost swap]# dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=4096 4096+0 回の読み取りが記録されました 4096+0 回の書き込みが記録されました 4294967296 バイト (4.3 GB) がコピーされました、15.7479 秒、273 MB/秒 [root@localhost swap]# スワップファイルを表示 du -sh /usr/swap/swapfileコマンドを使用して、作成したスワップファイルが4gであることを確認します。 [root@localhost swap]# du -sh /usr/swap/swapfile 4.1G /usr/swap/スワップファイル [root@localhost スワップ]# ターゲットをスワップパーティションファイルに設定する 1. コマンド mkswap /usr/swap/swapfile を使用して、swapfile ファイルを swap パーティション ファイルとして設定します。 [root@localhost swap]# mkswap /usr/swap/swapfile mkswap: /usr/swap/swapfile: 警告: ブートビットセクターを消去しないでください ディスク全体。強制するには -f を使用します。 スワップスペース バージョン 1 を設定しています。サイズ = 4194300 KiB ラベルなし、UUID=5bd241ff-5375-449d-9975-5fdd429df784 [root@localhost スワップ]# スワップ領域をアクティブにして、スワップ領域ファイルをすぐに有効にします swapon /usr/swap/swapfileコマンドを使用する [root@localhost swap]# swapon /usr/swap/swapfile [root@localhost スワップ]# 現在のメモリを確認するには、free -m コマンドを使用します。スワップ パーティションが 4095M になっていることがわかります。これは 4G のメモリを意味します。 [root@localhost swap]# free -m キャッシュされた未使用の共有バッファの合計 会員番号: 980 910 70 3 8 575 -/+ バッファ/キャッシュ: 326 654 スワップ: 4095 0 4095 [root@localhost スワップ]# 起動時に仮想メモリが自動的に有効になるように設定し、etc/fstabファイルに次のコマンドを追加します。 1. vimエディタを使用して/etc/fstabファイルを開きます 2. ファイルに次の内容を追加します /usr/swap/swapfile2 swap スワップ デフォルト 0 0 再起動コマンドを使用してサーバーを再起動します 1.再起動コマンドを入力して再起動します [root@localhost swap]# 再起動 [email protected] からのブロードキャストメッセージ (/dev/pts/1) 3:56 ... システムはただいま再起動のためダウンしています。 [root@localhost swap]# 192.168.136.142 への接続がリモート ホストによって閉じられました。 192.168.136.142 への接続が閉じられました。 [処理完了] 2. 再起動が完了したら、free -m コマンドを使用して、現在のメモリがハングしていないかどうかを確認します。 [root@localhost swap]# free -m キャッシュされた未使用の共有バッファの合計 会員番号: 980 910 70 3 8 575 -/+ バッファ/キャッシュ: 326 654 スワップ: 4095 0 4095 ElasticSearch を再度起動して、メモリ不足エラーがまだ報告されるかどうかを確認します。 1. esyonghu に切り替えて起動します (ここでは、なぜ es ユーザーを使用して起動するのかについては説明しません。これは elasticsearch の知識であり、ここでは elasticsearch を使用してメモリ不足の状況をシミュレートするだけです)。メモリ不足の問題がないことがわかります。 [esyonghu@localhost elasticsearch-6.4.0]$ ./bin/elasticsearch & [1] 2898 [esyonghu@localhost elasticsearch-6.4.0]$ [2019-03-06T04:00:24,841][INFO ][oenNode ][] 初期化しています... [2019-03-06T04:00:24,928][INFO ][oeeNodeEnvironment ] [dMy5nR5] 使用 [1] データパス、マウント [[/ (rootfs)]]、ネット使用可能領域 [7.6gb]、ネット合計領域 [17.3gb]、タイプ [rootfs] [2019-03-06T04:00:24,928][INFO ][oeeNodeEnvironment ] [dMy5nR5] ヒープサイズ [1.9gb]、圧縮された通常のオブジェクトポインター [true] [2019-03-06T04:00:25,018][INFO ][oenNode ] [dMy5nR5] ノード名はノードID [dMy5nR5fThaBb-Q2T0txdA] から派生しました。[node.name] を上書きするように設定しました [2019-03-06T04:00:25,018][INFO ][oenNode ] [dMy5nR5] バージョン[6.4.0]、pid[2898]、ビルド[default/tar/595516e/2018-08-17T23:18:47.308994Z]、OS[Linux/2.6.32-696.el6.x86_64/amd64]、JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/1.8.0_181/25.181-b13] [2019-03-06T04:00:25,018] [info] [oendode] [dmy5nr5] JVM引数[-xmx2g、-xx:+useconcweepgc、-xx:cmsinitiatingoccupcance = 75、-xx:+usecupcant s1m、-djava.awt.headless = true、-dfile.encoding = utf -8、-djna.nosys = true、-xx:-omitstacktraceinfastthrow、-dio.netty.nounsafe = true、-dio.netty.nokeysetoptimizati shutdownhookenabled = false、-dlog4j2.disable.jmx = true、-djava.io.tmpdir =/tmp/elasticsearch.24q3s9ae、-xx:+heapdumponoutofmemoryerror、-xx:heapdumppath = data、-xx:errifilefide = logids/hscdids/prints/hapdumppath = ails、-xx:+printgcdateStamps、-xx:+printtenuringdistribution、-xx:+printgcapplicationstoppedtime、-xloggc:logs/gc.log、-xx:+usegclogfilerotation、-xx:numberofgclogfiles elasticsearch -6.4.0、-des.path.conf =/home/esyonghu/elasticsearch -6.4.0/config、-des.distribution.flavor = default、-des.distribution.thepe = tar] [2019-03-06T04:00:28,022][INFO ][oepPluginsService ] [dMy5nR5] モジュール [aggs-matrix-stats] をロードしました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [analysis-common] をロードしました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [ingest-common] をロードしました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [lang-expression] がロードされました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [lang-mustache] をロードしました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [lang-painless] をロードしました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [mapper-extras] をロードしました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュールをロードしました [parent-join] [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [percolator] をロードしました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュールをロードしました [rank-eval] [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュールをロードしました [再インデックス] [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [repository-url] がロードされました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [transport-netty4] をロードしました [2019-03-06T04:00:28,023][INFO ][oepPluginsService ] [dMy5nR5] モジュール [tribe] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-core] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-deprecation] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-graph] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-logstash] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-ml] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-monitoring] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-rollup] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-security] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-sql] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-upgrade] をロードしました [2019-03-06T04:00:28,024][INFO ][oepPluginsService ] [dMy5nR5] モジュール [x-pack-watcher] をロードしました [2019-03-06T04:00:28,025][INFO ][oepPluginsService ] [dMy5nR5] プラグイン [analysis-ik] をロードしました [2019-03-06T04:00:28,025][INFO ][oepPluginsService ] [dMy5nR5] プラグインをロードしました [analysis-pinyin] [2019-03-06T04:00:31,315][INFO ][oexsasFileRolesStore] [dMy5nR5] はファイル [/home/esyonghu/elasticsearch-6.4.0/config/roles.yml] から [0] 個のロールを解析しました [2019-03-06T04:00:32,017][INFO ][oexmjplCppLogMessageHandler] [controller/2947] [Main.cc@109] コントローラー (64 ビット): バージョン 6.4.0 (ビルド cf8246175efff5) Copyright (c) 2018 Elasticsearch BV [2019-03-06T04:00:32,495][DEBUG][oeaActionModule ] プラグイン org.elasticsearch.xpack.security.Security からの REST ラッパーを使用しています [2019-03-06T04:00:32,768][INFO ][oedDiscoveryModule ] [dMy5nR5] 検出タイプ [zen] を使用 [2019-03-06T04:00:33,628][INFO][oenNode] [dMy5nR5] 初期化されました [2019-03-06T04:00:33,628][INFO ][oenNode ] [dMy5nR5] 開始しています... [2019-03-06T04:00:33,860][INFO][oetTransportService] [dMy5nR5] 公開アドレス {192.168.136.142:9300}、バインドされたアドレス {[::]:9300} [2019-03-06T04:00:33,884][INFO ][oebBootstrapChecks ] [dMy5nR5] 非ループバックアドレスにバインドまたは公開し、ブートストラップチェックを実施しています [2019-03-06T04:00:36,995][INFO ][oecsMasterService ] [dMy5nR5] zen-disco がマスターとして選出されました ([0] ノードが参加しました)[, ], 理由: new_master {dMy5nR5}{dMy5nR5fThaBb-Q2T0txdA}{ldgTZ1XZSfOpda9uP4treA}{192.168.136.142}{192.168.136.142:9300}{ml.machine_memory=1028210688、xpack.installed=true、ml.max_open_jobs=20、ml.enabled=true} [2019-03-06T04:00:37,003] [info] [oecsclusterApplierservice] [dmy5nr5] new_master {dmy5nr5} {dmy5nr5 {dmy5nr5fthabb-q2t0txda} {ldgtz1xzsfopda9up4tree} {192.168.136.142:9300} {ml.machine_memory=1028210688、xpack.installed = true、ml.max_open_jobs = 20、ml。 {ldgtz1xzsfopda9up4trea} {192.168.136.142} {192.168.136.142:9300} {ml.machine_memory = 1028210688、xpack.installed = ml.max_pen_jobs ]ソース[Zen-Disco-Elected-As-Master([0]ノードが結合)[、]]]) [2019-03-06T04:00:37,058][INFO][oexstnSecurityNetty4HttpServerTransport] [dMy5nR5] 公開アドレス {192.168.136.142:9200}、バインドされたアドレス {[::]:9200} [2019-03-06T04:00:37,058][INFO][oenNode] [dMy5nR5] が開始しました [2019-03-06T04:00:37,177][INFO ][owadMonitor ] /home/esyonghu/elasticsearch-6.4.0/config/analysis-ik/IKAnalyzer.cfg.xml から設定をロードしてみてください [2019-03-06T04:00:37,179][INFO ][owadMonitor ] /home/esyonghu/elasticsearch-6.4.0/plugins/ik/config/IKAnalyzer.cfg.xml から設定をロードしてみてください [2019-03-06T04:00:37,888][INFO ][oemjJvmGcMonitorService] [dMy5nR5] [gc][4] オーバーヘッド、最後の [1.2s] の収集に [486ms] を費やしました [2019-03-06T04:00:38,435][WARN ][oexsasmNativeRoleMappingStore] [dMy5nR5] レルムのキャッシュをクリアできませんでした [[]] [2019-03-06T04:00:38,469][INFO ][oelLicenseService ] [dMy5nR5] ライセンス [c91cae39-79d7-4a0e-b40b-b1918a45f80c] モード [トライアル] - 有効 [2019-03-06T04:00:38,477][INFO ][oegGatewayService ] [dMy5nR5] は [5] 個のインデックスを cluster_state に回復しました [2019-03-06T04:00:38,902][WARN ][oexsasmNativeRoleMappingStore] [dMy5nR5] レルムのキャッシュをクリアできませんでした [[]] [2019-03-06T04:00:39,106][INFO ][oecraAllocationService] [dMy5nR5] クラスターのヘルス ステータスが [RED] から [YELLOW] に変更されました (理由: [shards started [[mynote2][2]] ...])。 2. 次に、free -m を使用してメモリ使用量を確認します。1.7G のスワップが使用されていることがわかります。 [esyonghu@localhost elasticsearch-6.4.0]$ 無料 -m キャッシュされた未使用の共有バッファの合計 会員番号: 980 916 64 0 3 33 -/+ バッファ/キャッシュ: 880 100 スワップ: 4095 1735 2360 [esyonghu@localhost elasticsearch-6.4.0]$ 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: CocosCreator スケルトンアニメーション ドラゴンボーン
結果から判断すると、タイトルを定義するための固定パターンはなく、すべてむしろランダムな感じがします。...
Linux 上の LibreOffice で Microsoft ドキュメントを開くと、フォントが少...
目次1. シーン紹介2 コードの最適化2.1 ファンを増やす問題を解決する2.2 作品追加の問題を解...
Awk はテキスト ファイルを処理するためのアプリケーションであり、ほぼすべての Linux システ...
序文binlog は、MySQL のすべての追加、削除、および変更ステートメントを記録するバイナリ ...
序文:フロントエンド: jq+h5 で 9 グリッドのダイナミック効果を実現バックエンド: thin...
目次概要コードの実装要約する概要アダプタ パターンは、デザイン パターンの動作パターンのパターンです...
定義と使用@media クエリを使用すると、さまざまなメディア タイプに異なるスタイルを定義できます...
大規模な Web サイトでは、多数の同時アクセスを処理するために、Web サイト上の分散負荷分散以上...
この記事の例では、製品の拡大鏡効果を実現するためのVueの具体的なコードを共有しています。具体的な内...
Zabbix による SQL Server の監視を見てみましょう。まずfreetdsをダウンロード...
ステップ 1: メモ帳を使用して、MySQL インストール ディレクトリの「my.ini」ファイルを...
目次導入Next.jsプロジェクトを作成するNext.js プロジェクトを手動で作成するcreact...
1. MySQL 8.0.20をダウンロードして解凍するダウンロードリンク: https://dev...
Docker入門Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテ...