タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

golangに関するccoのブックマーク (5)

  • golangとDockerとOOM — KaoriYa

    golangで書いたプログラムをDockerで動かしOOMが発生した際になるべく情報を残して殺される方法を紹介します。 2020/08/16追記: この記事の内容はgolangに関してはやや現実的ではなくなってしまいました。 詳しくは続編を参照してください。 TL;DR golang製のプログラムは仮想メモリ(VSZ)の確保に失敗するとgoroutineのダンプを吐いて死ぬ DockerのOOMはRSSベースで検出時にSIGKILLを投げてくる Docker利用時にVSZで制限をかけるスクリプトを書いた golang製のプログラムはlinux-amd64において最低でも101MBのVSZを要求する VSZの制限がそれより小さいと当然起動できない 実際のRSSは3MB程度で起動する Background コンテナ内で動いているプロダクション上のgolang製のプログラムが時々OOMに殺されて

    cco
    cco 2020/01/18
  • The complete guide to Go net/http timeouts

    When writing an HTTP server or client in Go, timeouts are amongst the easiest and most subtle things to get wrong: there’s many to choose from, and a mistake can have no consequences for a long time, until the network glitches and the process hangs. HTTP is a complex multi-stage protocol, so there's no one-size fits all solution to timeouts. Think about a streaming endpoint versus a JSON API versu

    The complete guide to Go net/http timeouts
    cco
    cco 2016/07/02
  • Go memory

    This document discusses Go memory management and garbage collection. It explains that Go uses garbage collection to free unused memory blocks and scavenging to return idle memory to the operating system. It provides details on allocation primitives like new() and make(), garbage collection configuration using GOGC, and memory statistics available via runtime.ReadMemStats(). Code examples are provi

    Go memory
  • Mac(homebrew)でGoのインストールと、Emacsの環境構築 - ありの日記

    Goの勉強のためまずHello worldとEmacsの環境を構築をしたので、その記録。 この記事のゴール homebrewでGoのインストール godocによるドキュメントの表示 Hello worldを表示する Emacsの環境構築 go-autocompleteで保管 M-x godocでドキュメント表示 goflaymakeで構文チェックなど godefで定義ジャンプ goをhomebrewでインストールする $ brew install goインストールされているか確認 $ go version go version go1.2 darwin/amd64 Hello worldを書いてみる 適当な場所で以下のファイル(hello.go)を作成 package main import "fmt" func main() { fmt.Println("Hello World!") }

    Mac(homebrew)でGoのインストールと、Emacsの環境構築 - ありの日記
    cco
    cco 2014/08/01
  • Go の並行処理 - Block Rockin’ Codes

    intro 先日の Go のカンファレンス GoCon で、 Go の並行処理周りについて発表させて頂きました。 Go Conference 2013 spring - connpass 具体的には Goroutine や Channel の話ですが、これらの機能は結構面白くて、いじって遊んでるだけでもわくわくします。 Go の並行処理は、設計方針がわりと特殊だと思うのですが、設計がシンプルなので分かるとそこまで難しくはないです。 (使いこなすのは、経験が必要そうですが) 今回話すにあたって色々調べましたが、発表時間の都合上省いたものもあるし、質疑応答で聞かれて応えられなかったこともあるので、 ここでまとめて置こうと思います。 発表資料 今回の発表資料はこちらです。 このブログの内容は、これをベースにします。 http://jxck.node-ninja.com/slides/gocon-

    Go の並行処理 - Block Rockin’ Codes
    cco
    cco 2014/08/01
  • 1