タグ

ブックマーク / please-sleep.cou929.nu (4)

  • GCP の CPU usage と CPU utilization 指標の整理

    GCPCPU usage と CPU utilization 指標についてちょっとハマったので、かんたんに調べたことを整理した。 以下正確ではないが、こういうイメージで理解しているというメモ。また各例は GCE インスタンスの指標をとりあげているが、他も同じだと思う。 CPU usage (xxx/cpu/usage_time) usage_time は 1 秒あたりの cpu が利用中だった秒数。すべての vCPU について、60 秒のウィンドウで計測し集計。単位は s/s で、分子は利用中の秒数、分母は秒だと思う。 例えば 4 vCPU のインスタンスで、ある 60 秒間について、それぞれ 30 秒、0 秒、15 秒、0 秒利用中だった場合、usage_time は 0.75 s/s となる。 (30 + 0 + 15 + 0) / 60 = 0.25 (s/s) 当然数値は 1

    GCP の CPU usage と CPU utilization 指標の整理
    castaneai
    castaneai 2021/08/04
  • 簡単なサーバを実装しながら WebSocket のキャッチアップ

    実用ではなく学習目的で WebSocket の簡単なサーバを書きつつ、その後 RFC で仕様の背景を理解する流れがいい感じだった。 先日読んだ ハイパフォーマンスブラウザネットワーキング で取り上げられていたプロトコルについて深堀りしていこうと思い、一番仕様が薄そうな WebSocket をとっかかりとして選んだ。詳細の理解と、このの刊行後にあった動きをキャッチアップすること、そして周辺の技術や仕様にも yak shaving 的に枝を広げていきたいなと言う意図。 キリが良いところまで来たので、整理のため一度まとめる。 進め方 WebSocket は 仕様がまとまってからもう 10 年くらい経っている ので、いきなり RFC から入るのではなく MDN でざっと概要と API を知るところから始めた。中でも Writing WebSocket servers - Web APIs | M

    簡単なサーバを実装しながら WebSocket のキャッチアップ
    castaneai
    castaneai 2021/07/16
  • Docker コンテナ上で Go のプロジェクトを delve でデバッグするには ptrace の許可が必要

    Docker コンテナ上で Goプロジェクトを delve でデバッグしたいとき。Docker はデフォルトで ptrace(2) システムコールの呼び出しを制限しているので、これを緩和する必要がある。 具体的には docker run に次のように --cap-add=SYS_PTRACE というオプションを渡してあげるとよい。 docker container run --cap-add=SYS_PTRACE -it your-image:latest bash 背景 Docker コンテナ上で Go のプログラムを delve を使ってデバッグしようとすると次のようなエラーで動かなかった。 root@a135f59c96cb:/go# dlv debug could not launch process: fork/exec /go/debug: operation not pe

    Docker コンテナ上で Go のプロジェクトを delve でデバッグするには ptrace の許可が必要
    castaneai
    castaneai 2021/06/18
  • Go の sql.DB がコネクションプールを管理する仕組み

    Godatabase/sql パッケージ の DB 構造体 は、データベースへのコネクションプールを管理し、かつスレッドセーフ (goroutine セーフと言ったほうが良いのだろうか…?) にそれらの接続を使用できることを保証している。 ドキュメント にも次のように書かれている。 DB is a database handle representing a pool of zero or more underlying connections. It’s safe for concurrent use by multiple goroutines. こちらの基的な実装内容と、動作を制御するパラメータについて調べてみた。 基礎知識のおさらい database/sql パッケージはデータストアの実装によらない一般的な SQL のインタフェースを提供している。具体的なデータストアへの接

    Go の sql.DB がコネクションプールを管理する仕組み
    castaneai
    castaneai 2021/05/06
  • 1