botが停止しているのをLINEへ通知するスクリプト

スポンサーリンク スポンサーリンク

自動取引botのサポート

仮想通貨自動取引botを使っている人向けの記事です。
勝手に取引してくれて、損したり得したりする自動取引bot。
 私もこちらの記事で作成しています。→bitmex用トレーディングbotを初心者が作ってみた
通常、元気に動き続けてくれるものですが、たまに予期せぬエラーで
停止してしまったりします。
停止するとやばいですよね。このまま放っておいていいポジションならいいですが、
ひょっとしたら既に決済した方がいいのかも…。
もちろんストップ入れているとか、対策済みの注文の場合はそこまで気にしなくていいかもしれませんが、
botが停止してしまったなら、早いところ検知した方がいいのが事実。
その検知のための方法を検討しました。
もっとうまい方法があるのかもしれませんが、一応検知できています。

環境

・aws(cloud9)
・python(bot)+bash(検知)

検知のスクリプト

私が現在使用しているものです。
今のところ問題なく停止検知をしてくれています。
ただ、bot本体をいじれる人向け。
botをいじらなくてよい簡易版(ps検知)も後半で記載しますが、そっちは検知が弱いです。
私のbotは「例外吐いて停止してるがプロセスは残る」状態で止まることが多いので、
プロセスがあるかないかによる検知ではイマイチでした。
そのため、本体がうまく動いていれば…という条件に変更しました。

続きを読む →

スポンサーリンク

AWS Cloud9が重くなることがある件について(vfs-worker)

スポンサーリンク スポンサーリンク

AWS

時折重くなるAWSの原因

私はトレーディングbotをAmazonWebService(AWS)のcloud9上で動かしています。
時々、この環境がとても重くなって困ることがありました。
その時にCPUなどを食いつぶしているプロセスはこれでした。

「vfs-worker」

topやpsで確認できます。
topだと大体一番上を陣取って90%前後のCPUを使用している状況です。
■top結果 これちょっとスクショのタイミング悪かったですね…。変動するんですがCPU90とか使っていたのです。

■psしてgrepしてみると2個ある?

対策

これ何かしら、どうしたらいいかしら…
ということで調べていたら日本語のページが全然なかったので
メモとして書いておきます。

色々ググってて、イマイチ情報の集まりが良くなかったんですが、
サポート(twitter)がぶっ殺せ、再接続するからOK
っぽいことを言ってることがわかりました。英語苦手なんだよなあ…

これです。


このケースだとバグである、killすることができる…といったような内容だと思います。

この質問者はなおらなかったみたいですが、多分別の、inotifyプロセスが原因だったと思われるので、「vfs-worker」が重くなってる場合にはサポートの回答は有効なのではないかと考えられます。

で、私の場合。特に何かをする前に、なおってしまいました。
えー。しばらく耐えればなおるのかな?そういうもん?

ちなみに、なおったというのは
・[プロセスは変わらず存在する]が[負荷が下がった]
という状態です。

ちなみに、このプロセス殺すと何が起こるかというと…

このように、reconnecting…となり、再接続されました。
確かにtwitterサポートの言うとおりのようだ…
ただ、2個あって、片方は別の接続なのかな?と思ったのですがどっちを殺しても
自身の画面に「connecting…」と出ました。冗長化?

というわけで、「vfs-worker」が重くなってたらkillしてみるのも一つの手ですね。
[自分マシン-AWS]間の接続なので、そこで大きなやり取りをしていなければ
殺しても実害ないと思います。
(つまり、[自分マシン-AWS]間をぶった切りますが、[AWSbot-取引所]間のやりとりには影響を与えないと思います。)

killの仕方

ps -ef |grep vfs-worker
 →vfs-workerのプロセスIDを特定
kill 特定したPID(たいてい数字4~5ケタくらい)
 →すると、たぶん画面に「connecting…」と出て再接続されます。
軽くなりましたか?

試してみた

これ、ちょいちょい重くなりますね。
killを試してみました。

reconnectingされて、接続は戻るのですが…
ですが、いまいち?改善がみられる時もあるような、見られない時もあるようなという
非常に微妙な感じでした。ちょっとほっとくとなおるんですけどね。
何かご存知の方いましたら教えてください…