ホームページ >ウェブフロントエンド >jsチュートリアル >Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

青灯夜游
青灯夜游転載
2023-04-19 18:59:121766ブラウズ

ノードプロセス管理ツール-pm2の使い方. ノードプロセス管理ツール-pm2の使い方については次の記事で解説していますので、ご参考になれば幸いです。

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

pm2 とは

pm2 は、アプリケーションの保護と管理に役立つデーモン プロセス管理ツールです。通常、pm2 はサービスがオンラインになるときの管理に使用されます。ファイル変更の監視や自動再起動、複数プロセスの一元管理、組み込みの負荷分散、ロギングシステムなど、pm2でできることは実はたくさんあります。pm2

#の使い方を見てみましょう。 ##pm2 基本コマンド

最初に単純なノード サービスを作成し、新しいフォルダーを作成して

npm init を実行し、次に pm2

npm i pm2 -g

をインストールして新しい Index.js を作成し、 Index2.js、2 つの単純な http サービスを作成し、pm2 を使用してそれらを管理します。 [関連チュートリアルの推奨事項:

nodejs ビデオ チュートリアル プログラミング指導 ]

//index.js
let http = require("http");
let server = http.createServer();
server.on("request", function (req, res) {
  console.log("------------------enter");
  res.write("hello juejin");
  res.end();
});

server.listen(3000, function () {
  console.log(`服务器启动成功,通过http://localhost:3000/进行访问`);
});
//index2.js
let http = require("http");
let server = http.createServer();
server.on("request", function (req, res) {
  console.log("------------------enter2");
  res.write("hello juejin2");
  res.end();
});

server.listen(3001, function () {
  console.log(`服务器启动成功,通过http://localhost:3001/进行访问`);
});

次に、pm2 の最初のコマンドを使用します:

pm2 startindex.jspm2 startindex2.js これら 2 つのプログラムをそれぞれ開始します

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

もちろん、プロセス名を指定したい場合は、これを行うことができます:

pm2 start -n testindex.js、ファイルの変更を監視したい場合は、--watch などを追加できます

Visit

http ://localhost:3000/

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

実行

pm2 log出力したログが表示されます

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

pm2 他にも多くのコマンドがあります。ここではいくつかの

    1 つ/複数/すべてのプログラムを停止
  • pm2 stop id/id1 id2 id3/all
  • Kill Dead 1/複数/すべてのプログラム
  • pm2 delete id/id1 id2 id3/all
  • Restart 1/複数/すべてのプログラム
  • pm2 restart id/id1 id2 id3 / all
  • 起動してログを表示します
  • pm2 start api.js --attach
  • アプリケーションをリストします
  • pm2 list
  • 監視パネルの表示
  • pm2 monit
  • プログラム データの表示
  • pm2 show [id]
負荷分散

NodeJS が非同期のシングルスレッド言語であることは誰もが知っていますが、何も処理せずに直接サーバーにデプロイすると、サーバーの 1 つのスレッドしか使用できなくなり、パフォーマンスが大幅に無駄になります。

pm2 を使用すると、プログラムがサーバーの CPU を最大限に活用できるようにするために必要なコマンドは 1 つだけです。index.js を例に挙げます:

pm2 startindex -i max, たとえば、myコンピュータは 10 コアが 20 スレッドの場合、20 スレッドが開きます

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

#もちろん、必要なスレッド数を指定したい場合は、max を直接変更できます。開きたいスレッドの数を入力します。

pm2 start Index -i 3

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

設定ファイル

私たちは皆、コマンド ラインを使用しました。上記の例を管理するには、実際には非常に不便ですが、幸いなことに、pm2 は構成ファイルの形式を提供します。

コマンド

pm2 init simple を直接使用して、単純な構成ファイル ecosystem.config.js を生成し、2 つのサービスを指すように変更します

module.exports = {
  apps: [
    {
      name: "index",
      script: "./index.js",
    },
    {
      name: "index2",
      script: "./index2.js",
    },
  ],
};

次に、元のプロセスをすべて強制終了し、

pm2 start Ecosystem.config.js を実行します。同様に、2 つのサービスが開始されます

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

次のいくつかの設定項目です

ecosystem.config.js

module.exports = {
  apps: [
    {
      name: "index", //name
      script: "./index.js", //相对于pm2 start 的相对路径
      cwd: "", //要启动的应用程序的目录
      instances: 2, //要启动实例的数量,就是上面提到的负载
      watch: true, //是否启动监听
      env: { NODE_ENV: "development" }, //	将出现在您的应用程序中的 env 变量
      env_xxx: {
        NODE_ENV: "xxx", //使用pm2注入xxx变量进行切换
      },
      log_date_format: "YYYY-MM-DD HH:mm Z", //日志时间格式
      error_file: "./log/index-error.log", //错误文件路径
      out_file: "./log/index-out.log", //输出日志文件路径
      max_restarts: 10, //最大重启数
      restart_delay: 4000, //重启延迟时间ms
      autorestart: true, //是否自动重启
      cron_restart: "", //定时重启 使用cron表达式
    },
    {
      name: "index2",
      script: "./index2.js",
    },
  ],
};

Log

ログはバックエンドのトラブルシューティングにとって非常に重要です。pm2 は自動的にログ機能を使用します。たとえば、上記の設定ファイルでログ関連のパラメータを設定しました

log_date_format: "YYYY-MM-DD HH:mm Z", //日志时间格式
error_file: "./log/index-error.log", //错误文件路径
out_file: "./log/index-out.log", //输出日志文件路径

プロジェクトを開始すると、ログはログの下に記録されます

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

ログ機能pm2 に付属するものはログ分割をサポートしていません。時間が経つにつれて、ログ ファイルはますます大きくなり、パフォーマンスに影響を与えるだけでなく、後でトラブルシューティングするのが非常に面倒になるため、ログを分割する必要があります。ログ分割操作は非常に簡単です。

pm2-logrotate プラグインをインストールするだけです。ここでは pm2 install

pm2 install pm2-logrotate

を実行し、関連する設定を確認するために pm2 conf を実行することに注意してください。

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

関連する意味を説明してください

  • Compress:是否通过 gzip 压缩日志

  • max_size:单个日志文件的大小

  • retain:保留的日志文件个数

  • dateFormat:日志文件名中的日期格式,默认是 YYYY-MM-DD_HH-mm-ss

  • rotateModule:是否把 pm2 本身的日志也进行分割,

  • workerInterval:检查文件时间间隔

  • rotateInterval:设置强制分割,默认值是 0 0 * * *,意思是每天晚上 0 点分割,这里使用的是 corn 表达式,不会的可以搜索一下

如果我们想要配置也很简单,比如修改 max_size

pm2 set pm2-logrotate:max_size 1K

然后我们简单测试一下这个工具,我们先设置每个 log 文件最大 1kb

然后重启我们的项目

pm2 restart ecosystem.config.js

然后就会发现我们的日志被分割了

Node プロセス管理ツール pm2 の使用方法について詳しく説明します。

总结

pm2对于node服务的管理是十分方便的,文中提到的只是其中一部分,如果你想使用pm2管理你的服务的话可以到官网pm2.io/ 进行学习

更多node相关知识,请访问:nodejs 教程

以上がNode プロセス管理ツール pm2 の使用方法について詳しく説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。