Docker 7th birthday celebration! Join birthday.play-with-docker.com to earn a special badge
![Docker birthday party!](https://cdn-ak-scissors.b.st-hatena.com/image/square/6c067beb8f35d433133545bba5f11055192ba455/height=288;version=1;width=512/https%3A%2F%2Fbirthday.play-with-docker.com%2Fimages%2Fmeta-image.png)
はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立
はじめに 先日、Amazon Linuxで脆弱性が見つかった際に弊社のAWSチームのメンバーが以下の記事を公開していました。私は最近までクライアントサイドの開発案件を主に担当していたので自分の業務にはあまり関わりはないのですが、どのような手順でLinuxの脆弱性に対応しているのか興味があったので社内の人に聞いたり調べてみたことをまとめます。 [AmazonLinux] OpenSSLの脆弱性(CVE-2015-1793)について 1.脆弱性の情報を得る まずは脆弱性が見つかった情報はどこから得るのでしょうか?脆弱性に関する情報は以前から以下のサイトのRSSなどから情報を得ることができますが最近はTwitter見てたら知った、なんてこともあるそうです。 Japan Vulnerability Notes JPCERT コーディネーションセンター 以下はTwitterのアカウントです。 JVN
本記事の公開後の2016年7月にはてなにおけるチューニング事例を紹介した。 はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck HAProxy や nginx などのソフトウェアロードバランサやリバースプロキシ、memcached などの KVS のような高パケットレートになりやすいネットワークアプリケーションにおいて、単一の CPU コアに負荷が偏り、マルチコアスケールしないことがあります。 今回は、このようなネットワークアプリケーションにおいて CPU 負荷がマルチコアスケールしない理由と、マルチコアスケールさせるための Linux カーネルのネットワークスタックのチューニング手法として RFS (Receive Flow Steering) を
シェルスクリプトの中で、スペース区切りもしくはタブ区切りのレコードを扱うことがよくあると思います。 たとえば、前回のエントリ「AWS CLIとjqを使って、AWSのELBボリュームがアタッチされているEC2インスタンス名を出力するワンライナーを書いた - 双六工場日誌」のスクリプトの出力は以下のようになります。 i-ec56a9f5 vol-07d00601 servername i-ec56a9f5 vol-8f550991 servername このようなレコードの特定の列を取り出して、処理する際にどうするのが効率的か、というのがこのエントリのお題です。 非常に古い話題なので、昔からシェルスクリプトを書いている人には自明な話ではありますが、最近、シェルの標準機能の話を聞く機会がなく、失われつつある技術になってきている気がしているので、改めて確認ということで。 例として挙げたレコードから
初めまして、新卒入社の桑折(@2k0ri)と申します。 入社から今日まで約3ヶ月間、研修およびOJTを受けさせて頂いておりました。 その初OJTのステージング環境で、デプロイ先ディレクトリのシンボリックリンクを消すつもりが デプロイディレクトリを中身ごとrm -rfする という重度のやらかしをしでかしました。 30秒うちひしがれた後、ググって extundeleteというコマンドを見つけてからの 自分が行ったリカバリーの手順を残します。 なお、このコマンドはext3/ext4フォーマット専用になります。 1. サーバーへのアクセスを出来る限り抑えるように周知 最近のLinuxのデファクトFSであるext4フォーマットは、rmされたデータの跡地に 待ったなしで容赦なく新しいデータが書き込まれていきます。 そのため、何よりもまず失われたデータが上書きされないように、 該当サーバーでやらかしたこ
どちらも一時ファイルを保存するディレクトリだけれど、ちゃんと説明があったのでメモ。 /tmp ・再起動するとファイルは消える ・定期的に削除される(10日) /var/tmp ・再起動してもファイルは消えない ・定期的に削除される(30日) CentOS 6.xの場合・・・ 再起動後の処理は、/etc/rc.d/rc.sysinit で行われる。 定期的に削除する処理は、/etc/cron.daily/tmpwatch で行われる。 これらの用途は、FHS(Filesystem Hierarchy Standard(ファイルシステム階層標準)に記載されている。 Filesystem Hierarchy Standard http://www.pathname.com/fhs/ FHS 2.3によると・・・ /tmp:P.15 The /tmp directory must be made
矢口です。 みなさんはLinuxのtcという機能をご存知でしょうか。送信するパケットの帯域制御を行うことができる大変強力な機能で、グリーでもいくつかの用途で使用されています。 具体的な事例の一つはRedisです。Redisではreplicationを新規に開始する際やfailoverが発生しmasterが切り替わった際(特に2.6系)にストアされている全データが転送されます。しかし帯域制限をかける機能がないため、ネットワーク帯域を圧迫してしまう危険性があります。また通常のクライアントとの通信でも大量のクエリにより予想以上の帯域を使用してしまう可能性があります。このような場合にtcを用いることでRedisの使用する帯域をコントロールできます。 このように有用なtcですが残念なことに日本語/英語ともにわかりやすい解説や詳細な情報は多くありません。 私も社内において使われていたtcの設定に問題が
こんにちは。斎藤です。 ITインフラの障害は、多くの場合「予期せぬ」タイミングで発生します。特に、CPUリソースを多量に消費したり、Disk I/Oが輻輳している場合、その切り分けは困難な状況に陥りやすいものです。 そこで、本日はITインフラ、特にOS・ミドルウェアを支えるにあたって、問題解決を助けてくれるであろう12個のコマンドを取り上げてみます。「必ず押さえておきたい」5つのものと「更に覚えると便利なコマンド」7つの2節に分けてお話しします。 ※CentOS 6.4 (64bit)を前提に取り上げます 必ず押さえておきたいコマンド もしITインフラ管理者になりたてな方はぜひ サーバサイドのプログラマをやっていたのだけれど、ある日突然「君、サーバ管理担当ね!」と、バトンを渡される方っていらっしゃると思います。私も以前はそのクチでした...。そうなってしまったとき、まずは覚えておきたい5つ
安価なマイコンボード「Arduino」とLinuxサーバーを組み合わせ、家電を制御します。出先でスマートフォンなどから手動でエアコンをON/OFFしたり、部屋の気温が高くなったとき自動でエアコンをつけたりします。ECサイトの特売情報もチェックして、目覚ましを鳴らします。 2000円台からと安価なマイコンボード「Arduino」は、色々なセンサーを付けて周りの状況を調べたり、赤外線LEDを取り付けて家電のリモコンとして動かしたりできます(写真)。 今回は、このArduinoボードとLinuxサーバーを連携させ、日々の生活をちょこっと便利にするシステムを作りました。目覚まし時計も兼ねる、インテリジェントな学習リモコンとして動作します。好みに合わせたカスタマイズも可能です。 エアコンを自在に制御 今回のシステムは、大きく3つの機能を持ちます(図1)。1つ目は、出先からエアコンを制御する機能です。
95MB/sで現在世界最速のmicroSDHCカード、SanDiskのExtreme Proを使用した場合、既存の製品であるEye-Fi、FlashAir、Flucard Proをはるか後方に置き去るスピードが出ます。4kのシーケンシャル書き込み38.98MB/sに注目。 これまでは無線LAN内蔵SDカードを使おうとする場合、スピードか、利便性かのトレードオフを迫られたのですが、そうした葛藤は過去のものとなりました。 速さも、利便性も、その両方が我らの手中にあります。 PQI Air CardはARM CPUを搭載。 # cat /proc/cpuinfo Processor : ARM926EJ-S rev 5 (v5l) BogoMIPS : 421.06 Features : swp half fastmult edsp java CPU implementer : 0x41 CPU
タイトルは釣りぽよ〜 今日ここで書くのはわりかし最近知ったことだったりするのが多いんですが、せっかくなので書いておこうかなぁと思った次第です。Linuxって書いてるけど、普通にMacでも使えるハズです。 知ってる人にとってはアタリマエのことですけどね……。 ファイルサイズの桁でかすぎてがわからん ls とか duあたりで使える話ですね。 ファイルサイズが大きすぎてパッと見わからないよっていうことってあるじゃないですか。ありますよね。いやある。 そんな時は -h オプションを使いましょう。 $ ls -l /var/log/nginx/access.log -rw-r--r-- 1 root root 1897381 8月 26 02:50 2012 /var/log/nginx/access.log $ ls -lh /var/log/nginx/access.log -rw-r--r--
エンジニアという職業柄かシェルスクリプトを書くことはちょくちょくあるのですが、自分なりに気を付けていることを備忘録&自分への戒めも含めて、簡単に書いてみたいと思います。 変数は大文字 シェルスクリプト書いていれば変数の出番は至るところであるでしょう。その際、可読性を増すように、変数は大文字を使っています。 RET=`cmd1`みたいに。好みの問題もあるでしょうが、分かりやすいので。 クオテーションは選ぶ クオテーションにはシングルだったり、ダブルだったり色々ありますが、使い分けておいたほうがよいでしょう。 変数の展開がないようであれば、シングルクオーテーションのほうがスマートでしょうし、展開があるのならダブルクオーテーションを使えばと。 ダブルクオーテーションを使うのにも意味があって、変数は「$RET」のようにクオテーションで囲まなくても動作はたいていするのですが、 echo "${RET
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く