人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CRONでの処理について教えてください。
CRONでPHPを使ってデータベース(MySQL)の処理を計画しています。
処理内容は、1日1回、MySQL内の特定の値に対しランキングを行います。
■主な条件
・サーバー:さくらレンタルサーバー・スタンダード
・データ数:まだ不明ですが、とりあえず想定として1万件
■参考までに、CRONの使用に関する注意事項(一部抜粋)
・メモリやCPUに著しく負荷をかける処理は他のお客様にご迷惑がかかりますのでおやめください。 サーバ運用に支障をきたす場合はやむを得ない場合には、予告無く設定解除、機能制限することがあります。
・実行頻度が1時間以内に連続する場合や、CPU処理時間が60秒以上連続で利用される場合、予告なく設定解除される場合があります。
■質問
(1)上記の様な場合『CPU処理時間が60秒以上連続で利用』されるでしょうか?
(2)何かCPUに負荷をかけず、処理をボチボチやる方法があれば教えてください。
例えば朝3?5時まではデータメンテナンス中として
新たな書き込みなどのアクセスは停止して、ゆっくり処理して良いです。

以上 よろしくお願いします。


●質問者: tsuka115
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● pogpi
●50ポイント

ランキングを作るだけなら、60秒もかからないと思いますよ。
CRONを使う必要もない気がします。


pogpiさんのコメント
順位をテーブルに持たせなくても、「ORDER BY ポイント DESC」で、大きい順に取れます。特定の人の順位も、その人のポイントよりポイントが大きい人数をCOUNTで取って、+1すれば取れますよ。

tsuka115さんのコメント
申し訳ありませんが、素人なので良く理解できてません。 (1)1日1回バッチ処理で一括して順位を求めて保存しておいて、必要な時に必要な人の順位を検索して取得する。 (2)必要な時に必要な人の順位を毎回count+1で取得する。 サーバー負荷的に考えて(1)の方が良いと思っていたのですが、(2)の方が良いと理解してよろしいのでしょうか?

pogpiさんのコメント
順位を更新するメンテナンスが大変なので、その方がいいと思います。 サーバー負荷を心配されているようですが、それほどかからないと思いますよ。

2 ● ラフティング
●50ポイント

cronを設定する時刻は、0分丁度や30分丁度は避けた方がいいです。


3 ● morinatsu
●50ポイント

同じくさくらレンタルサーバーのスタンダードプランで、twitterのbotを運用していたことがあります。

処理の頻度は1日1回ということなので、cron自体の制限にはかからないと思います。

処理の負荷はランキング処理の内容と量次第という感じです。
自分の経験としては、もともとインストールされていないソフトをビルドしたら、処理を途中で中断されました。(コンパイルは青天井にCPU使ってしまうので……)
手作業、自動実行にかかわらず、CPU利用率が一定を超えたJOBを強制終了するようになっているものと推測します。
その際は、niceコマンドを使って優先度下げたら、中断されずに完了しました。時間がかかっても良いなら、お薦めの手段です。


tsuka115さんのコメント
とても有用な情報、どうもありがとうございます。 niceは知りませんでしたので(Linuxを全然知らないのですがw)試行錯誤して、やっとこさ以下で一応は動いたのですが、使い方はこれでおかしくないでしょうか? nice -n 10; cd /home/(user_name)/www/test/cron_test; /usr/local/bin/php (php_name).php 1> /dev/null 以上 よろしくお願いします。

tsuka115さんのコメント
ちなみに、最初 nice -n 10 cd /home/・・・ としてましたが ちゃんと動かなかったので nice -n 10; cd /home/・・・ と 「;」を入れてみました。

morinatsuさんのコメント
実際に試してみれる環境はもう持っていないので、気になったところだけ。 cdがちゃんと動かないのは、シェルの組込みコマンドだからです。(niceで実行できるのは外部コマンドだけ) 挙げられている例のように複数コマンドをまとめて実行するなら、スクリプトを組んで、それを実行させる方がよいでしょう。 あと、個人的には、実行ログを /dev/null に捨ててしまうのは危険だと思っています。私も一時期やりましたが、障害解析が全くできないので、ちゃんとログをファイルに書き出す方法に切替えました。

4 ● きゃづみぃ
●50ポイント

実際に動かして時間を測定し、それにより判断したほうがいいと思います。


5 ● blue_star22
●50ポイント

cron設定の基本

http://dqn.sakusakutto.jp/2012/06/cron_crontab9.html


1-5件表示/7件
4.前の5件|次5件6.
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ