する質問をすることでしか得られない、回答やアドバイスがある。piで、ある測定を行い、得られる測定データの中でフィルタ条件を満たすものを、その都度、リアルタイムに通知したい。・測定データは特定のフォーマットのテキストデータであり、軽量でメールに載せられます。・測定データがフィルタ条件に一致するかの判定は、各測定データに対し、マルチスレッドを起動しており、同時並行的です。これを大量に取得される測定データに対して行い、フィルタ条件を満たすときは、メール通知しています。メール通知までもマルチスレッド化してます。測定データの取得時刻と、それに対応するメールが作成完了する時刻も載せています。・通信経路は暗号化を要求するので、現状ではpgpのメールで対応していますが、メールを一件ごとに開く必要があり、使いづらいです。そのため、表示を自由に変更可能なサーバに変更し、tlsへ移行するつもりです。・rpi外のネットワークの品質には問題ないとします。発生している問題・エラーメッセージ上記のメッセージ配送の仕様のため、非力なrpiでは、短時間に連続でフィルタ条件を満たす測定データが取得されるとき、一気に大量のタスクキューがたまるためか、それらの通知を見ると、測定データの取得時刻とメールメッセージ作成時刻が1,2分空いてしまっており、リアルタイム性がないです。これは、rpiで大量のタスクキューを発生させた事が原因なのか、1回のメール作成が負荷の原因であり、その他のメッセージ配送プロトコルを利用すれば改善されるかは不明です。rpiのネットワークの遅延は問題ないので、rpiのcpuの問題です。試す前にどのような機能を用いるべきか。軽量のメッセージプロトコルとして,mqttやnanomsg,zeromqを考えています。測定データを送信するrpiと、それを受信してwebアクセスしたユーザーに自由な形式(グラフとか)で表示するサーバのため、実質的には二者間通信であり、、ブローカーレスな構成です。軽量のメッセージプロトコル以前に、例えば、最近5秒以内のフィルタ条件を満たす測定データはまとめて通知する、という方法にすれば、通知回数を減らして負荷を減らせるのでは、という期待もあります。(もちろん、遅延が最低でも5秒存在する事にはなるが)そのため、httpsでpost送信で対応すればよいのではとも考えました。3.6attachmentクリップ1気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順link0質問内容を完全に把握していないのですが、Raspbianで普通に使える、セキュアでリアルタイム性がある軽量プロトコルといえば、WebSocketですね。自由度が高いので、複数メッセージをまとめる等どの様にでも実装できますが、メッセージをまとめなくても、どの様に実装しても、置き換えればpgp+smtpよりは相当改善されると思います。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。編集websocketを調べると、どうやら、なんらかのデータ(測定データや株チャート等)をサーバー側で保持し、グラフのリアルタイムな変動を見たいクライアントとの通信で利用されているようです。回答をお待ちいたします。websocketの処理について、サーバ側はpythonでも良いが、クライアント側はwebアクセスとしてjsを利用しています。なると、rpiからサーバへの測定データ送信はサーバへのjsによるアクセスとなるのでしょうか?そうなると、pythonならjs利用可能なヘッドレスブラウズなどによる処理の重い実装になります。rpiからデータ受信サーバへの通信は本来はwebsoketの役割ではないように思えるのですが、どうなのでしょうか。clientのそれぞれで、websoketを使うと良いということでしょうか?websocetとともにasyncioが使用されているあたり、測定データの送信を素早く非同期にできるという意味ではこちらもありなのでしょうか。websocketを調べると、どうやら、なんらかのデータ(測定データや株チャート等)をサーバー側で保持し、グラフのリアルタイムな変動を見たいクライアントとの通信で利用されているようです。回答をお待ちいたします。websocketの処理について、サーバ側はpythonでも良いが、クライアント側はwebアクセスとしてjsを利用しています。なると、pythonならjs利用可能なヘッドレスブラウズなどによる処理の重い実装になります。rpiからデータ受信サーバへの通信は本来はwebsoketの役割ではないように思えるのですが、どうなのでしょうか。websocetとともにasyncioが使用されているあたり、測定データの送信を素早く非同期にできるという意味ではこちらもありなのでしょうか。PiのCPUを取り替えたり、クロックを上げたりする訳にはいきませんから、ソフトウェア的な解決方法をとるしかないと思います。状況を把握するために、スレッドおよびタスクの生成時刻、消滅(完了)時刻、をログとしてメモリに記録してみてはどうでしょうか。(メモリ一杯までログが溜まったらプリンタなどに出力して内容を確認する)また、個々の処理(測定データの取得、フィルター処理、pgpの暗号化、など)をシングルスレッド(他のスレッドは存在しない状態)で実行してみて、一連の処理に必要な時間を把握すべきだと思います。pi側の状況把握をふまえて、ネットワークによる通信に関する検討を始めても遅くないのではないでしょうか。piの処理速度を上げる(温度上昇によって生じるCPUクロック速度低下を抑える)には、冷却能力の高いケース、大型のヒートシンクや冷却ファンを使うことが有効なようです。ハードウェア的な対処方法として追記しておきます。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。0異なるセグメントのPC(ワークグループ)からドメイン内の共有フォルダにアクセスしたい。頂いたご意見への回答は行っておりません。