ちょっと前からですが、Node.jsで運用しているサービスのデーモン化ツールを node-foreverから、node-pm2へ変更いたしました。 foreverと比較して高機能なpm2をお伝えいたします。 クラスタリング foreverコマンドは、基本的にプロセスが生きている事を管理するのみでした。 pm2では、それはもちろんの事、使っているCPUに合わせてクラスタリングする機能が付いています。 Node.js v0.6で追加されたクラスタリング機能はソケットをネットワーク化されたNode.jsのアプリケーション間でシェアする事が出来ました。 pm2では基本機能として、追加コードなしにそれらを実装しています。pm2本体がマスタープロセスの役割をし、アプリケーションコードをクラスタリング化された子プロセスとして扱います。 すべてのCPUを使ってクラスタリングするには、 pm2 start
ハマったのでメモ。 Linuxでリソース制限するための仕組みのulimitがありますが、その1項目に「nproc」があります。 これはそのユーザで実行できるプロセス(スレッド)数の制限となります。 これが、CentOS5までは、 $ ulimit -u unlimitedのように無制限だったのですが、CentOS6になって以下のように1024で制限がかかるようになりました。 $ ulimit -u 1024そのため、デーモンとかで高負荷な処理をさせてプロセス(スレッド)が増えると処理が落ちてしまうのです。 悲しいけどこれってデフォルト値なのよね。 設定箇所は? 実際の設定は、[/etc/security/limits.d/90-nproc.conf]でされています。 # cat /etc/security/limits.d/90-nproc.conf # Default limit for
ホーム 検索 - ログイン | | ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか
追記 2013-03-04 [twitter:@dankogai] さんにも言及されてました>< 404 Blog Not Found:perl - soloで任意のコマンドを期限付きで排他実行する 追記 2013-03-01 つづきを書きました。 続・プロセス間の期限付き排他ロック - (ひ)メモ 追記 2013-02-27 コメント欄でのやりとりの通り、穴がある(クリティカルセクションに複数プロセスが突入する可能性がある)のでちょっと出直してきます!! やりたいこと プロセス間の排他的実行を制御したい 一定時間経過したら実行できるようにしたい 例えば、フェイルオーバーを実行するスクリプトは、何度も実行できるとフェイルオーバー/バックを繰り返してフラップするので、一度フェイルオーバーしたら一定時間は実行できないようにしたい 実装 シンボリックリンクを使って排他制御する 期限切れは、シンボ
Node.jsで外部コマンドを実行する際などに使うChildProcessクラスのオブジェクトでは、execメソッドやspawnメソッドを使って子プロセスを実行することができます。 ChildProcessを使用して外部コマンドを実行する方法については「Node.jsで外部のコマンドを実行する方法: child_processを使う」を参考にしてください。 ところで、ChildProcessのexecメソッドもspawnメソッドは、子プロセスを実行するという点で機能は同じですが、なにが異なるのか、何を基準に使いわけるべきか? を考えてみます。ChildProcessのexecとspawnの違い ChildProcessのexecとspawnの最も大きな違いは、エラーなしに終了した場合に得られるstdoutで得られるオブジェクトのクラスの違いです。 次のように異なります。 execのstdo
以前http://tech.naver.jp/blog/?p=1369の記事を読んだのだけれど、それまでにprocessの知識が無かったりして、まったく理解できませんでした。そこでWorking with UNIX ProcessesやServer::Starterの中身を呼んでようやくhot deployの仕組みを理解できた(気になっている)ので、Server::Starterの実装を追いながら、それをまとめてみます。 hot deployとは hot deployとは「再起動の時にリクエストの処理を続けながら、変更の内容を反映するための手段」です。 通常serverをrestartさせるときは、stop -> startの流れになると思いますが、この場合stopしてから、start出来るまでの期間にリクエストを処理できない期間が発生します。その期間なしにdeployする仕組みがhot
なんか先週結構Parallel::ForkManagerやらParallel::Preforkやらについてすごく議論というか話をしたので、自分もあまり得意ではないんですがforkについての僕の考え方をまとめておこうと思います。 forkってなんぞ。 Does a fork(2) system call to create a new process running the same program at the same point. It returns the child pid to the parent process, 0 to the child process, or undef if the fork is unsuccessful. File descriptors (and sometimes locks on those descriptors) are shared
Availability: not Emscripten, not WASI. This module does not work or is not available on WebAssembly platforms wasm32-emscripten and wasm32-wasi. See WebAssembly platforms for more information. Using the subprocess Module¶ The recommended approach to invoking subprocesses is to use the run() function for all use cases it can handle. For more advanced use cases, the underlying Popen interface can b
I'm using python's ftplib to write a small FTP client, but some of the functions in the package don't return string output, but print to stdout. I want to redirect stdout to an object which I'll be able to read the output from. I know stdout can be redirected into any regular file with: stdout = open("file", "a") But I prefer a method that doesn't uses the local drive. I'm looking for something li
suppose there is a script doing something like this: # module writer.py import sys def write(): sys.stdout.write("foobar") Now suppose I want to capture the output of the write function and store it in a variable for further processing. The naive solution was: # module mymodule.py from writer import write out = write() print out.upper() But this doesn't work. I come up with another solution and it
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く