OffVPSオフショアVPSサポート

日々の運用

スケジュールされた実行の合間に個人用ツールを役立たせ続ける。

オフショア VPS 上の個人ツールには 2 つの異なる役割があります。開いたときに応答することと、スケジュールが来たときに定常作業を実行することです。それぞれに明確なライフタイムと確認できる結果を与えます。

例示的なワークロード計画 · レビュー済み · 6 分で読めます

この例示的な例はプライベートなリーディングキューです。小さな Web インターフェースがリンクとノートを保存します。毎日のジョブが許可されたフィードの短いリストをチェックし、毎週のタスクが読書サマリーをエクスポートします。これは計画演習であり、顧客がこの設定を使用している、または VPS がこれらのジョブを実行することを主張するものではありません。

サービスとジョブを分離する

Web プロセスはサービスです。ツールを開いたときに利用可能であるべきで、選択したアクセス制御の下にあります。フィード更新はジョブです。開始し、制限付きの作業を処理し、結果を記録して終了します。長いスリープを伴う無限ループは、最後の更新が成功したかどうか、および別の実行が開始された理由を曖昧にする可能性があります。

最初のスコープは小さく保ちます。使用が許可されているソースのみを取得し、そのレート制限を尊重し、インポートされたフィードコンテンツとは独立して自分のノートを保持します。プライベートツールは、整備されたプライベート接続を通じてアクセスする場合、公開 Web リスナーをまったく必要としないかもしれません。Web エンドポイントを公開する場合は、認証を実装し、以下を確認してください。 DNS、ネットワーク、HTTPS パス.

同時作業の予算を立てる

静かなダッシュボードはジョブのピークメモリ使用量を示しません。重複する可能性のあるものを数えます。オペレーティングシステム、Web プロセス、データストア、フィード解析、エクスポートまたはデプロイです。すべてのドキュメントを一度にメモリにロードすることは、制限付きのバッチを一度に 1 つ処理することとは異なる要件を生み出します。

例として、計画ワークシートがシステム作業に 250 MiB、Web ツールとデータストアに 200 MiB、制限付き更新に 400 MiB、重複するエクスポートまたはデプロイに 400 MiB を許可するとします。1,250 MiB の合計は、決定を説明するために考案された割り当てであり、テストされたフットプリントではありません。実際のタスクを測定してください。それらの重複と一時ファイルは、アイドル状態と同じくらい重要です。

設定例は次で始まります Seed そしてメモリ 1 GB を追加します。したがって、1 vCPU、2 GB RAM、25 GB SSD を月額小計 $8.50 USD で指定します。実際の使用可能メモリをワークシートと比較し、より多くの CPU が必要と仮定する前にジョブのバッチサイズを減らします。 リソース警告ガイド で読み方を説明しています。

シード + 1 GB RAM;カタログからの全期間合計
サービス期間保存前保存済み一括払い
1ヶ月$8.50$0.00 (0%)$8.50 USD
3ヶ月$25.50$0.00 (0%)$25.50 USD
6ヶ月$51.00$14.28 (28%)$36.72 USD
12ヶ月$102.00$51.00 (50%)$51.00 USD

これらの合計には選択したメモリオプションが含まれ、チェックアウトと同じ定期的な割引を使用します。この例ではカタログバックアップオプションは選択されていません。バックアップストレージやその他の外部コストは別の予算に保ちます。サービス期間は支出の決定であり、ツールがメンテナンスを必要としないという約束ではありません。

スケジュールと未実行時のルールを定義する

スケジュールの横に意図したタイムゾーンを書きます。サーバーが戻ったときに未実行をキャッチアップすべきか、遅れた結果にまだ価値があるかを決定します。このリーディングキューでは、毎日の未実行更新をすべて再生するよりも、現在の更新を 1 回行う方が有用かもしれません。

systemd では、タイマーがサービスをアクティブにします。そのターゲットサービスがまだアクティブな場合、タイマーは別のインスタンスを起動せずに実行を続けさせます。 Persistent=true を使用するカレンダータイマーは、未実行イベント後に再有効化されたときにキャッチアップをトリガーできます。未実行の間隔ごとに個別の実行を作成するわけではありません。参照: タイマーの動作と永続化ルールスケジュールジョブのガイド はこれらの選択を限定的な例に変えます。

重複を制御し、繰り返しを安全にする

スケジュールされた更新と手動更新に同じ実行パスを与えます。別のエントリポイントがスクリプトを直接実行できる場合、共通のロックがそれらの試行を調整できます。 flock などのツールは排他ロックと非ブロッキング失敗ポリシーをサポートします。関連するすべてのライターが協力する必要があり、ファイルシステムの動作が重要です。参照: ロックマニュアルとファイルシステムの制限.

ビジーロックに対する明示的な結果を選択します。たとえば、前回の更新がまだ実行中だったためこの更新がスキップされたことを記録します。オペレーターがそのスキップを成功したフェッチと誤解しないようにしてください。別途、インポートされたアイテムを安定したソース識別子で識別し、再試行が既に保存された作業を認識できるようにします。ロックは同時作業に対処し、重複安全なアプリケーションロジックは後で繰り返される作業に対処します。

外部リクエストと再試行を制限します。利用できないフィードは、ジョブを永遠に保持するのではなく、有用なエラー記録を残すべきです。エクスポートがファイルを生成する場合、新しい結果を別途準備し、検証後にのみ公開します。そうすれば、実行が失敗したときにダッシュボードは以前の完全なエクスポートを使い続けることができます。

有用な結果を記録する

リスト内のスケジュールされた時刻は、更新が完了した証拠にはなりません。開始時刻と終了時刻、終了結果、検討された項目数、最後に成功したデータのタイムスタンプを記録してください。個人用ツールであれば、小さなステータス表示でトークンや生のプライベートノートを公開せずにそのタイムスタンプを示せます。

通常の実行、利用できないソース、ビジー状態での2回目の呼び出し、同じ入力の繰り返しをテストしてください。プロセスの結果と保存された結果の両方を確認してください。ジョブの実行中にWebサービスが停止した場合は、 最初の手がかりチェックリスト を使用して、アプリケーションの問題とスケジューリング動作を区別してください。

データリカバリとクリーンアップを分離する

ここでかけがえのないデータは、保存されたキュー、閲覧状態、個人ノートです。ツールを再構築するには、設定、スケジュール定義、リリース識別子が必要です。ログは調査に役立ちます。一時ダウンロードと交換可能なエクスポートには、異なる保持ルールを適用できます。クリーンアップを自動化する前に、これらのパスを分類してください。

ログと完了したエクスポートに範囲を限定した保持ポリシーを設定し、削除を有効にする前に増加を観察してください。永続データは、そのストレージエンジンに適した方法でバックアップしてください。resticでは、スナップショットと明示的なテストターゲットを選択することで、復元の意図が可視化されます。デフォルトの復元は既存のファイルを上書きする可能性があるため、別の空の宛先を使用してください。参照: 復元ターゲットと上書き動作.

テストコピーで、既知のノートを取得し、その閲覧状態を確認して、エクスポートを生成してください。手順と結果を保存してください。 リストア演習 は、リポジトリの整合性と使用可能なアプリケーションが別々のチェックである理由を説明しています。

説明できるものだけを設定する

Seedコンフィギュレーターを開き、既存の選択肢を確認し、この例に合わせて1 GB RAMを追加してください。期間は意図的に選択してください。リンクが自動的にオプションを適用することはありません。サーバーにはマレーシア、ルーマニア、またはスイスを選択し、セットアップに依存する前にバックアップ場所とサービスの範囲を確認してください。

ホスト名の選択や支払い詳細の受領は、ツールのインストールやジョブのスケジュール設定を行いません。アクセスの準備が整ったら、 初回アクセスガイド に従い、観察可能なタスクを1つずつ構築してください。現在の結果がなぜ必要かを示したときに複雑さを追加してください。

使用したドキュメント

このページの主な参照資料。ご自身の環境にインストールされているバージョンのドキュメントを確認してください。