タグ

ブックマーク / tetsuyai.hatenablog.com (5)

  • 単独のサーバーの「負荷」の正体を突き止める - 祈れ、そして働け ~ Ora et labora

    指標を読む ロードアベレージ # uptime 15:40:33 up 357 days, 22:34, 2 users, load average: 0.19, 0.17, 0.12 コマンド uptime。load averageに続く3つの数字が過去1分間、5分間、15分間の平均値を表します。 意味 処理を実行したいが、なにかしらの要因で実行を待たされているプロセスの数を表します。したがって、ロードアベレージが高い状態とは多くのプロセスが処理を実行できずに待たされている状態、ということになります。 解釈 なにかしらの要因としては「ほかのプロセスにCPUが使われていて、空くのを待っている状態」と「ディスクに読み書き要求を発行していて、その結果を待っている状態」の二種類が考えられます。前者は「CPU使用率」、後者は「I/O待ち率」として数値化することができます。ロードアベレージを見ただけ

    単独のサーバーの「負荷」の正体を突き止める - 祈れ、そして働け ~ Ora et labora
  • ミリ秒の精度で時刻を表示する - 祈れ、そして働け ~ Ora et labora

    ちょっと“実行時間を確認したい”ときに便利なTime.nowですが、秒の精度でしか表示できません。 >> Time.now => Sat Oct 30 01:46:23 +0900 2010 ボトルネックを探しているときなど、秒だと精度が足りないというときは、Time#usec*1を組み合わせることでマイクロ秒の精度を得られます。 >> Time.now.usec => 323167 Time#usecそのものはマイクロ秒しか返さない*2ので、Time.nowと組み合わせてこんな風に使いましょう。 >> Time.now.instance_eval { '%s.%03d' % [strftime('%Y/%m/%d %H:%M:%S'), (usec / 1000.0).round] } => "2010/10/30 02:12:42.827" *1:usecの精度は環境に依存します。最後

    ミリ秒の精度で時刻を表示する - 祈れ、そして働け ~ Ora et labora
    suginoy
    suginoy 2014/12/15
  • MySQL server has gone away - 祈れ、そして働け ~ Ora et labora

    ステージング環境の挙動がおかしいので調べてみると、"MySQL server has gone away"というエラーが発生していました。どうやらクローズされたコネクション上でクエリを実行しようとすると、このエラーが発生するようです。もう少し詳しく調べてみました。 A.2.2. MySQL server has gone away エラー このセクションでは、関連する Lost connection to server during query エラーもカバーしています。 MySQL server has gone away エラーの最も一般的な原因は、サーバがタイムアウトして接続がクローズしたことです。デフォルトでは、何も起きない状態が 8 時間続くと、サーバは接続をクローズします。この時間は、mysqld 開始時に wait_timeout 変数を設定することで変更できます。 MySQ

    MySQL server has gone away - 祈れ、そして働け ~ Ora et labora
    suginoy
    suginoy 2014/02/19
    “間違ったクエリか大きすぎるクエリを発行した場合も、このエラーが発生する" "mysqldは大きすぎるか異常のあるパケットを取得すると、クライアントに何か問題が発生したとみなし、接続をクローズする”
  • Rails 3.1でプリコンパイル済みのアセットを作成する - 祈れ、そして働け ~ Ora et labora

    概要 Rails 3.1で新しいプロジェクトを作ったところ、番環境でアセットがプリコンパイルされていないというエラーが発生しました。対策として、3.1から導入されたアセットパイプラインのために、プリコンパイル済みのアセットを作成しました。 ActionView::Template::Error (application.css isn't precompiled) 構成 Ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] Rails 3.1.0 問題 Internal Server Errorが発生し、プロダクションログには次のエラーメッセージが出力されていました。 Started GET "/working_records" for 197.8.10.19 at 2011-09-20 11:35:19 +0900 Proc

    Rails 3.1でプリコンパイル済みのアセットを作成する - 祈れ、そして働け ~ Ora et labora
  • JavaScriptエンジンをインストールする - 祈れ、そして働け ~ Ora et labora

    概要 Rails 3.1で新しいプロジェクトを作ったところ、番環境でJavaScript runtimeが見つからないというエラーが発生しました。対策として、3.1から導入されたCoffeeScriptのために、JavaScriptエンジンをインストールしました。 Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.Rails 3.1からは実行環境にJavaScriptエンジンが必須になったようです。 構成 Ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux] Rails 3.1.0 問題 もともとはブラウザに表示されたInternal Server Err

    JavaScriptエンジンをインストールする - 祈れ、そして働け ~ Ora et labora
    suginoy
    suginoy 2012/01/27
    「therubyracerを選んだのは、たまたまです。execjsが対応するJavaScriptエンジンには、Google V8以外にも以下のようなものがある」
  • 1