AMIから構築したEC2は最初EBSが遅い、プレウォーミングが必要

AWS

EC2をAMIから構築したところ、ディスク(EBS)が遅い。CloudWatchでもキュー長が増加してしまっていました。 問い合わせたところ、AMI からEC2インスタンスを作成した場合、各 EBSボリュームは スナップショットからリストアした際と同様、データは S3 がダウ…

RedisにBashを使って大量データを高速挿入(INSERT)する

Redisに数千万件の大量データを挿入したいという要件がありました。 手元のテキストファイルをBash使って手軽に高速に挿入したいのですがredis-cliを普通に使うとスピードが出ない。 Redisのプロトコルで流し込む方法が推奨のようです。 大量データのインサ…

Redisの「Cannot assign requested address」のエラーが出たので対応

ローカルのRedisに大量データを入れていたところ、以下のエラーが発生しました。 Could not connect to Redis at 127.0.0.1:6379: Cannot assign requested address Socketの状態を見てみたら以下の通り。28232 TIME-WAIT が問題でした。 $ ss -tan | awk ‘{…

LinuxのI/OスケジューラのDeadlineを調べてチューニングしてみた

Deadlineスケジューラの概要 チューニングパラメータ write_expire,read_expire writes_starved fifo_batch ソースコード読む時のエントリ部分 SSD向けのチューニング例 設定方法 最後に 参考文献とURL ● SSD の並列性を引き出す I/O スケジューラに関する研…

Linuxページキャッシュの設定を変更してWrite I/Oをチューニングしたメモ

環境 設定パラメータ 計測ツール 1 ダーティーページ状況の計測ツール 出力項目 出力フォーマットと出力例 2 時間付きvmstat 3 fio(I/O負荷発生ツール) 観測 実験 チューニング例 デフォルト値 ダーティーページの最小化 キャッシュ有効活用メモリ上に乗せた…

CentOS7でSystemdがメモリリークしていて使用率がジワジワと上昇していた

ほとんどサービス動いてないサーバが急にメモリ使用率の警告出したので調べて見たら、1日に30MBくらい、1ヵ月で1GBくらいジワジワとSystemdがメモリリークしていたという話です。 事象 Systemdが異常にメモリを使っている。 $ ps aux | head USER PID %CPU %…

Solrのレプリケーション帯域幅を制御してI/Oパフォーマンスを制御する

Solrのレプリケーションが原因で、EC2のSolrサーバが定期的にIOボトルネックのパフォーマンス劣化起こしてたので、対応としてレプリケーションの帯域幅を制御できるパラメータ( maxWriteMBPerSec )を使ったのでメモ。 経緯 最初はI/Oボトルネック解消のため…

BashスクリプトからSQLiteを操作する方法(PSコマンドの結果をDB格納してみた)

Bashスクリプトやワンライナーから直接SQLiteを操作する方法です。せっかくなのでPSコマンドで出力したプロセスの一覧をDBに格納するところまでやってみました。 Bashからsqliteを操作する方法 DB作成方法。 echo ".open db_name" | sqlite3 SQL文投入はこん…

serverspecの評価結果をjson形式で出力する(複数ホストにも対応)

serverspecの結果を他の仕組みと連携させたい場合など、json形式で出力する方法です。 標準 specに標準でjsonフォーマッターが付いているので、 --format オプション指定するとjson形式の結果が得られます。 bundle exec rake spec SPEC_OPTS="--format json…

NagiosでMySQLのslow query監視しようとして見つけたcheck_mysql_healthが色々できる

掲題の件、少し探したらcheck_mysql_healthというプラグイン見つけた。 ConSol Labs - check_mysql_health 導入方法 以下のような方法で導入します。 cat <

【Nagios】SSL証明書CRTファイルの有効期限をチェックするプラグイン作った

SSLの証明書期間チェックのためのスクリプトです。 HTTPSでアクセスして確認する方法もありますが、普段アクセスされない待機系などの確認に利用するために作ったものです。 プラグインの仕様 監視対象側のNRPE設定 Nagios側の設定 Ngios画面イメージ プラグ…

AWS EC2のタグを関連するEBSとENIにコピーするスクリプト

AWS

結構前に一回実行用に作ったものだけど、最近使う機会出たのでここにもメモ。 #!/usr/bin/env ruby require 'aws-sdk' require 'pp' region = 'ap-northeast-1' cred = Aws::SharedCredentials.new Aws.use_bundled_cert! cli = Aws::EC2::Client.new(creden…

【Windows10】Bash on Ubuntu on Windowsが0x80070005エラーで起動しなくなった

昨日まで動いていたのに突然 0x80070005 というエラーコードでbashが起動しなくなった。 調べてみると以下のような情報に辿り着いた。 Error reinstalling bash - Error 0x80070005 · Issue #473 · Microsoft/BashOnWindows · GitHub アンインストールして、…

Bashのパイプから受け取ったテキストで複数の単語をハイライト表示させる

cat や tail -f からパイプで受け取ったテキストから複数の単語を色違いにハイライト表示させたい場合に利用します。 grepのハイライト機能( grep --color=auto )だと検索ひっかかった行のみしか表示されないということで作ってみました。 スクリプト functi…

JavaからSlack API経由でメッセージを送信してみた【Simple Slack API】

JavaでSlackへメッセージ送信しようとしたのですが、Simple Slack APIというAPIを利用したら簡単にできたのでメモしておきます。 場所 github https://github.com/Ullink/simple-slack-api Mavenの場合はここです。 https://mvnrepository.com/artifact/com.…

CentOS7に移動したらselenium-webdriverがSelenium::WebDriver::Error::WebDriverErrorを吐いた

selenium-webdriver+Firefoxを使ったRubyの運用スクリプトをCentOS6環境からCentOS7に移行してきたところ、以下のようなエラー吐いて動かなくなった。 /path/to/mydir/vendor/bundle/ruby/2.3.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/fire…

CentOS7に任意のバージョンのFirefoxをインストールする方法

以下からインストールしたいバージョンのFirefoxを探す。 http://releases.mozilla.org/pub/firefox/releases/ ダウンロードする。 wget http://releases.mozilla.org/pub/firefox/releases/45.3.0esr/linux-x86_64/ja/firefox-45.3.0esr.tar.bz2 tarを解凍…

【静かな環境で仕事がしたい】騒がしい中でも静寂を手に入れるアイテム【MOLDEX耳栓】

子どもができると、今までの独身、夫婦二人きりの生活から打って変わって、家の中がいつもにぎやかになります。ただ、そんな中でも誰にでも静かになりたい時あると思います。 私は子どもに会いたくて、仕事を早めに切り上げる場合もあるので、その分時々家で…

今年最も買って良かったガジェットGARMIN vivosmart® Jとvivosmart® HR Jについて書く

2016年もそろそろ終わりです。この記事では題名の通り、今年の個人的No1ヒットガジェットのGARMIN vivosmartについて書きます。 以下の2機種を使ったので使用感や比較も書きたいと思います。 vívosmart® J vívosmart® HR J 私的ガジェットカテゴリ分け 自他…

AWS ALB(Application Load Balancer)のアクセスログをFluentdにInputする

AWS

AWS ELBのログをFluentd(td-agent)で集めて集計していました。最近、いくつかALBを使うサービスが出てきました。 このALBですが、 たぶん ALB(Application Load Balancer) が正式名称だと思っているのですが、たまに Elastic Load Balancing Version 2 と書…

EC2とEIPで冗長構成のApache Load Balancerを構築する(Pacemaker)

ELBはオートスケールで可用性も高く、ミドルウェアの心配しないでいいので便利なのですが、IP固定できないなど課題があるのと、障害時の調査がブラックボックスすぎて大変なため、Pacemakerを利用して冗長化構成のLoadBalancerを構築してみました。 CDPで言…

Pacemakerでフェールオーバー時にAmazon SNSに通知するResource Agent書いてみた

Pacemaker/Corosyncでクラスタ構築していたのですが、フェイルオーバーしてしまった時には通知が欲しいものです。 Pacemakerをインストールすると、Failover時にメール通知するMailTo というResource Agentがデフォルトでインストールされます。 resource-ag…

Apacheのmod_proxy_hcheckを利用してロードバランサーを構築してみる

Apacheの2.4.21から利用できるようになったmod_proxy_hcheckを利用してロードバランサーを構築してみます。ここではApacheの 2.4.23 を利用していきます。このバージョンのmod_proxy_hcheckにはバグがありますので、その対応も記載します。 mod_proxy_hcheck…

Apache Prefork+mod_phpからEvent+PHP-FPMへの切り替えた記録(CentOS7)

Apache のPrefork MPM + mod_phpで運用していたシステムを、Apache Event MPMに変更したので、その際の記録を残したいと思います。 ApacheのPrefork MPMは「プロセス数=同時接続数」です。しかし、Apacheに割り当てられるメモリには当然限りがあり、Prefork…

MuninデータのダッシュボードとしてGraphite+Grafanaを利用してみた

いつもお世話になっているMuninなのですが、任意のグラフを選んで並べて比較してといった使い方が簡単にできたらいいなと思っていました。 色々な実装方法があると思いますが、ここではMuninの基板であるRRDToolのような時系列データベースである Graphite …

GoogleドキュメントスプレッドシートにAWS EC2一覧を自動作成する

AWS

AWS Management Consoleはとても良く出来ていて、管理資料なんか無くても良いくらいです。 Windows使うことも無くなり、EXCEL開く回数も激減したのですが、それでもEXCELと一緒に社会人としての人生を生きてきているので、どうしてもあの表形式から離れられ…

VMWare ESXiのリソースをMuninで監視するためのプラグイン(Ruby)作ってみた

ESXiのMunin監視を行うためのプラグインを作ってみました。 監視項目 画面イメージ GEMのインストール プラグインコード munin.confの設定 1つのプラグインファイルで複数ホストを監視したい場合 監視項目 CPU利用量 Memory利用量 Datastore利用量 画面イメ…

CentOS7に最新のApache(2.4.23)をソースコードからインストール+Systemd化まで

CentOS7のレポジトリのApacheは2.4.6なのですが、2.4.7以降に導入された機能が使いたかったので、最新安定版のApache 2.4.23をインストールしました。 ソフトウェアバージョン ソフトウェアダウンロード ソフトウェア展開 APRインストール APR-UTILインスト…

タグをキーにしてEC2インスタンスのCSV形式一覧を抽出するワンライナー

AWS

Tipsだけど忘れないように。 抽出したい条件に合わせて --arg TKey "Stack" と --arg TValue "Production" を変えて実行します。 例えば以下のような条件の場合、 Key Value Stack Production こんな感じのワンライナーになります。 aws ec2 describe-instan…

ASUS Zenfone2(ZE601KL)からZenfone3(ZE552KL)に乗り換えたので比較とか

乗り換えの経緯 開封してみた 他の機種との大きさ比較 Zenfone2(ZE601KL)とZenfone3(ZE552KL)の比較 ZE552KLの良いところ 高級感 指紋認証便利 カメラの起動が速くてスムーズ ブルーライトフィルター ZE552KLでまだ評価定まってないところ USB Type-C デュア…