Dockerのディスクioがボトルネックになる原因とその対策

dockerのディスクのマウント先がループバックデバイスだと遅い ループバックデバイスは特定のファイルをデバイスとみなす仕組み ゲストOSでの書き込み→ループバックデバイスへの書き込み→物理ディスクへの書き込みとなるので、直接物理ディスクに書くより遅…

Dockerのmemory, memory-reservation について

memory : ハードリミット。ここで指定した以上のメモリを使用しようとするとOOMKillerが走る memory-reservation : ソフトリミット。ホストのメモリに余裕がある時は、これ以上使用することもある 余裕が無いときは、memory_reservation 内にとどめる ECSで…

AWS 認定ソリューションアーキテクト – アソシエイト (新版) 対策メモ

AWS

自分が知らなかったAWS用語のおぼえがき Amazon Redshift Amazonが提供するデータウェアハウス データウェアハウス(DWH)とは、意思決定のために、基幹系などの複数システムから、必要なデータを収集し、目的別に再構成して時系列に蓄積した統合データベー…

MHA for MySQLのデフォルトのヘルスチェックでは、DBの書き込み障害ではフェイルオーバーしないよというお話

先に結論 MHA for MySQLのデフォルトのヘルスチェックでは、DBの書き込み障害ではフェイルオーバーしない なんで? MHAはヘルスチェックをバラメータ ping_type で設定された方法で行う ping_type のデフォルトは SELECT ping_type : SELECT の場合、ヘルスチ…

SRE本読書メモ エラーバシェットの話しを読んで、明確な数値目標は意思決定コストを下げると思った

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司出版社/メーカー: オライリージ…

SRE本読書メモ 15章: ポストモーテム文化。非難のない振り返りが改善を生む

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司出版社/メーカー: オライリージ…

[SRE本読書メモ] 13章: 障害対応。ストレスの無い障害対応が少ないダウンタイムを生み出す

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム作者: 澤田武男,関根達夫,細川一茂,矢吹大輔,Betsy Beyer,Chris Jones,Jennifer Petoff,Niall Richard Murphy,Sky株式会社玉川竜司出版社/メーカー: オライリージ…

RubyでGCしても直ちにRSSが減るわけではないというお話

先に結論 GCをしても、RSSが直ちに減るわけではない C言語のレイヤーで、free しても次の malloc に割り当てるためにメモリを手放さない実装があるのが原因らしい 計測してみた 適当な長さのStringを10000回作って、RSSと、ObjectSpace.memsize_of_all を計…

スレーブのレプリケーションが遅延している時に SHOW SLAVE STATUS でチェックするべき値

前提知識 MySQLのスレーブでは、以下の2つのスレッドを使って、レプリケーションを行っている I/Oスレッド : マスタからバイナリログの差分を取得する SQLスレッド : IOスレッドから取得したバイナリログを元にDBを更新する SHOW SLAVE STATUS で見るべき値 …

MySQLのバイナリログについて解説

バイナリログとは マスタのDBの 更新命令のみ を記録したログファイル マスタ/スレーブ間の同期(レプリケーション)で使用する my.cnf に log-bin オプションを設定すると、バイナリログが作成されるようになる バイナリログの保存形式 STATEMENT, ROW, MIXED…

クイズ形式で rubyのジャンプ構文の挙動をおさらいしてみましょう

全問正解した人は自慢して良いと思います。全5問です。 なお、動作環境は ruby 2.5.0 です 問1 Procの中でbreak 実行結果はどうなるでしょう? def main p = Proc.new{|v| p v break if v >= 5 } 1.upto(10, &p) # & は、ブロックの代わりにProcを渡す命令 p …

AWS EC2 の T2 インスタンスについてメモ

AWS

先にポイント T2インスタンスは他と違い、CPUの使用について独特の制限がある(その分安い) T2はインスタンスタイプ毎にCPU使用率が定められている。これを ベースラインパフォーマンス と呼ぶ また、CPUを使用するたびに、CPUの使用権である CPUクレジット …

ストレングス・ファインダーをやってみて自分の特性が明確になったお話

さあ、才能(じぶん)に目覚めよう 新版 ストレングス・ファインダー2.0作者: トム・ラス,古屋博子出版社/メーカー: 日本経済新聞出版社発売日: 2017/04/13メディア: 単行本この商品を含むブログ (2件) を見る 先にまとめ 主に自分向けの内容です ストレングス…

ECSのawsvpcネットワークモードおぼえがき

awsvpcネットワークモードとは? taskにENIを紐付けるネットワークモード ENIとは? Elastic Network Interface 仮想ネットワークカードを表す VPC 内の論理ネットワーキングコンポーネントです インスタンスにネットワークインターフェイスをアタッチすると、…

AWS Fargateでtaskを動作させるのに必要な設定の記録

task definition 以下はインスタンスのcpuinfoとメモリの情報をチェックするtaskのdefinition { "family": "get_fargate_cpu_info", "containerDefinitions": [ { "name": "get_fargate_cpu_info", "image": "#{AWS_ACCOUNT_ID}.dkr.ecr.us-east-1.amazonaws…

AWSのドキュメントに添ってECSを動かしてみた

この2つを参考に、ECSを動かしてみた docs.aws.amazon.com docs.aws.amazon.com ゴール Hello World と書かれた index.html を持つ apache サーバをECSで動作させて、ブラウザで動作確認する 手順 DockerImageを作る DockerImageをECRに登録する Task Defini…

Amazon ECS 覚え書き

Amazon ECSとは Amazon Elastic Container Service (Amazon ECS) Docker コンテナをサポートする拡張性とパフォーマンスに優れたコンテナオーケストレーションサービスです (最近乱立しがちでK8Sに統合が向かうのかどうなのかわからない)コンテナオーケスト…

ruby:2.3.6-alpine3.4 に、postgresql-dev 9.6系をインストールしようとしたら conflict が発生した話

現象 alpine3.4 だと、postgresql-dev や client が 9.5 系 9.6 系を入れたくて、Dockerfileで /etc/apk/repositories を加工して、alpine3.5系のパッケージを入れるように変更した /etc/apk/repositories http://dl-cdn.alpinelinux.org/alpine/v3.5/main h…

springの子プロセスが `BUNDLE_APP_CONFIG` を無視するバグがある

現象 docker-compose を使って、run bin/rake を実行した時に、Could not find rake が発生 (ローカル環境では正しく動作する) $ docker-compose exec web bundle exec bin/rake --version Could not find rake-12.3.0 in any of the sources Run `bundle in…

docker-compose でよく使いそうなコマンドおぼえがき

ビルド docker-compose build # Build or rebuild services 起動、停止 docker-compose up # Create and start containers docker-compose up -d # デーモンとして起動 docker-compose start # サービスを開始 docker-compose restart # サービスを再起動 do…

Alpine Linuxで素のRailsが動くDockerfile を作った

DBはPostgreSQLで、他に余分なgemを入れなければこんな感じ FROM ruby:2.5.0-alpine COPY Gemfile* /myapp/ WORKDIR /myapp RUN apk upgrade --no-cache && \ apk add --update --no-cache \ postgresql-client \ nodejs \ tzdata && \ apk add --update --n…

fluent-plugin-slack では、仕様上リンクテキストの修飾は使えないよというお話

先に結論 fluent-plugin-slack では、仕様上slack のテキストリンク修飾は使えないので諦める (こんな風にそのまま出力される) 詳細 <>& はエスケープされて出力されるように実装されている そのため <example.com|example> もエスケープされてそのまま出力される issue は上がっ</example.com|example>…

危機感にかられて今更Dockerを学び直す人の記録(data volumeをおさらい)

今日やること data volume を理解し直す data volume ってなんぞ ボリュームは、Dockerコンテナによって生成され、使用されるデータを永続化するための推奨されるメカニズムです docs.docker.com Dockerコンテナの中のファイル/ディレクトリは、コンテナが終…

合格対策 AWS認定ソリューションアーキテクト(アソシエイト) の読書メモ 1〜5章

試験対策本を読んで、知らなかったことや曖昧だったところをメモ 合格対策 AWS認定ソリューションアーキテクト - アソシエイト作者: 大塚康徳(日立インフォメーションアカデミー)出版社/メーカー: リックテレコム発売日: 2016/08/17メディア: 単行本(ソフト…

家で作業と家事を同時にこなす「家事ポモドーロ・テクニック」がとても良かったので布教します

家で作業をすると、ついその前に部屋を片付けてしまったり、周りにある誘惑に負けて、全然作業が進まないことありませんか? そんなときは、ポモドーロ・テクニックを使って作業と家事を交互に行うと、作業も集中できるし、家事も片付くしで一挙両得だよ! と…

scope は、戻り値が `nil` や `false` のときも `ActiveRecord::Relation` を返す

条件式付きのscpoeをクラスメソッドに移行する際に、問題になる 例: scopeの場合 class Item < ApplicationRecord scope :by_name, -> name { where('name like ?', "%#{name}%") if name.present? } end 引数の値が nil でも、 ActiveRecord::Relation がキ…

Active Record の scope を使う必然性ってあるの?

と思って調べたら、Rails ガイドに、 スコープでのメソッドの設定は、クラスメソッドの定義と完全に同じ (というよりクラスメソッドの定義そのもの) です。どちらの形式を使用するかは好みの問題です。 と、言われたので、 特に必然性は無いらしい ちなみに…

EC2の仮想化方式についてのおぼえがき

AWS

先にまとめ AMI(Amazon Machine Image)の仮想化方式は、準仮想化 (PV) およびハードウェア仮想マシン (HVM) の2種類 現在はHVMを推奨している 公式曰く: 最適なパフォーマンスを得るために、インスタンスを起動するときには、現行世代のインスタンスタイプと…

どうぶつタワーバトルを社内に普及したいのでプレゼン

この記事は feedforce Advent Calendar 2017 の 11 日目の記事です ドーモ、社内ニンジャスレイヤー推進おじさん かせいさんです 前回は、Waka F のNY旅行の話でした。アドベントカレンダーでまさかのYouTubeでした。すごい! www.youtube.com さて、ニューヨ…

週報 2017/11/27週 Dockerを勉強した週

期間 2017/11/27(月) 〜 2017/12/03(日) インプット SOFT SKILLS ソフトウェア開発者の人生マニュアル作者: ジョン・ソンメズ出版社/メーカー: 日経BP社発売日: 2016/06/02メディア: Kindle版この商品を含むブログ (6件) を見る まだ半分くらい。セルフブラ…