タグ別アーカイブ: リクエスト

素早くおにぎり数万個…コンビニやスーパーの被災地支援:朝日新聞デジタル

「おにぎりが届いて本当に助かった」――。記録的な豪雨で大きな被害を受けた茨城県や栃木県などには、当日の10日夕から食料品や毛布など様々な支援物資が届き、避難所で一息つく被災者も多かった。素早く支援に動いたのは、独自の流通網を持つコンビニ大手や総合スーパーだ。

各地で記録的大雨

セブン&アイ・ホールディングスは被災翌日の朝7時に、被害が甚大だった茨城県常総市の避難所10カ所におにぎり6千個を届けた。12日中には新たに1万個を届け、肌着や靴下、毛布など計約7千点も配る計画。すべて無償だ。

東京都千代田区のセブン&アイ本社にプロジェクトチームが立ち上がり、被災地の自治体などと連絡を取りながら、必要な物資や数量を決めていく。おにぎりは近隣の生産工場から集め、通常の配送用トラックを被災地に向かわせた。

コンビニやスーパー大手の多くは、自治体と緊急物資に関する「災害協定」を結んでいる。無償で物資を提供する一方、危険地帯の道路を迅速に通してもらい、お店の営業を続けられるメリットなどがある。2011年の東日本大震災以降、各社は社内の防災マニュアルを見直し、災害時の「初動」を研究してきた。

ローソンは協定先の宮城県に連絡し、大崎市内の小学校に物資を運ぶことを11日午後2時半ごろに決定。その2時間後には、仙台市内の物流センターから10トントラック1台がカップ麺2千個と飲料水を届けた。

「過去の震災では物資が余ることもあった。本当に必要なものを届けることが大切」とするのはイオングループ。おにぎりなら4千個から120個まで、自治体の要請ごとに細かく選別して届けた。歯ブラシや簡易トイレ、生理用品などのリクエストにも対応。復旧支援のボランティアの派遣も検討しているという。

他にも、冠水で数十人が取り残された常総市のスーパー「アピタ石下店」を持つユニーグループ・ホールディングスやファミリーマートなど、「地域のインフラ」となった流通企業が続々と支援している。

引用元: 素早くおにぎり数万個…コンビニやスーパーの被災地支援:朝日新聞デジタル.

Googleは10億個のファイル・20億行のコード・合計86TBでできている – GIGAZINE

Googleのエンジニアリング・マネージャーであるレイチェル・ポートヴィンさんが、「The Motivation for a Monolithic Codebase」と題した講演の中で、Googleのシステムが86TB(テラバイト)でできていることを明かしました。

Google Is 2 Billion Lines of Code—And It’s All in One Place | WIRED

http://www.wired.com/2015/09/google-2-billion-lines-codeand-one-place/

講演ムービーはコレ。話は5つのテーマに分けて行われていて、Googleのリポジトリについての話は1番目、3分過ぎから始まります。

The Motivation for a Monolithic Codebase Why Google Stores Billions of L – YouTube

2015年1月時点で、総ファイル数は10億、ソースファイルの数は900万、コードは20億行あり、3500万回のコミットがあって、内容は86TBあるとのこと。そして、営業日1日に対してのコミット回数は4万5000回。

累積コミット数のグラフはこんな感じ。左側の回数目盛りは40までですが、それぞれ1目盛りが1000万回分に相当。2000年1月1日からの数字ですが、コミットが1000万回を越えたのは2012年ごろのこと。回数はぐんぐん増えていて、2015年1月時点で3500万回まで増えています。

Googleで働く「Googler」は2万5000人、世界に12あるオフィスで働いています。1日あたりのコミット回数は4万5000回とありましたが、そのうち1万5000回が人間の手によるもの、3万回が自動化されたシステムによるもの。ファイルリードリクエストは1日に10億回で、ピーク時には80万QPS(秒間クエリ処理数)に到達するとのこと。

これが1週間のコミット数を、人の手によるものと全体とを分けてグラフ化したもの。単位は1000回なので、だいたい人の手によるコミットは週間7万5000回ほど。

Linuxのカーネルが4万ファイルで1500万行あるのに対して、Googleのリポジトリは25万ファイル・1500万行が人の手によって毎週変更されています。累計のサイズは900万ファイルで20億行にもなります。

Windowsの公式Facebookページによると、Windows XPは4500万行のコードでできていたとのこと。数字だけを単純に比較すると、Googleは3週間でWindows XP全体に相当する量のリポジトリを変更している、ということになります。

引用元: Googleは10億個のファイル・20億行のコード・合計86TBでできている – GIGAZINE.

あなたのアカマイ大丈夫? | GMOメディア エンジニアブログ

「Offload」モニターの項目に「TOP URLS」という項目があります。その名の通りですが、指定した期間中にリクエストが発生した上位50件がLUNA上で確認可能です。こちらが2015年6月初旬のスクリーンショットですが非常にマズいです!拡張子「.webp」のリクエストを一切キャッシュしておらずオリジンへ毎回リクエストを転送していて、まるでプロキシ状態です。

どうしてこうなったかというと、アカマイでのキャッシュ設定で拡張子毎にキャッシュ時間等を制御していた為です。 こちらがキャッシュ制御の画面ですが、指定した拡張子にマッチした場合にのみ30日間のキャッシュを持つという設定ですが、比較的新しい画像フォーマットの拡張子を記載していませんでした。。

新しい拡張子を採用する場合はhttpサーバー等でmime/typeとかの意識はすると思いますが、Akamaiのキャッシュ対象に加えるという事を忘れないようにしないといけません。 拡張子「.webp」とついでに「.pjpeg」をキャッシュ対象に加えたところオフロード率は95%程度迄急上昇しました。 今後他の画像フォーマットを利用する際はアカマイのキャッシュ対象に入れる事を忘れないようにしないとです。

引用元: あなたのアカマイ大丈夫? | GMOメディア エンジニアブログ.

ポケットにリアルな猫? 主婦の手作りシャツに注文殺到:朝日新聞デジタル

ポケットからひょっこり顔を出す猫を刺繡(ししゅう)したシャツが人気だ。写真と見まちがうほど写実性豊かに手がけるのは、奈良県の主婦。ネットに載せたら瞬く間に世界に拡散し、注文が殺到した。東京の編集者の目にとまり、5月には作品集も出した。

ちょうど2年前の今ごろだった。橿原市の主婦のhirokoさんがパソコンを開くと、100通近いメールが届いていた。「変なウイルスに感染したかと驚きました」

数日前、大学生の次男のために手作りしたシャツを写真共有サイト「フリッカー」に掲載していた。猫好きの次男からリクエストされ、胸ポケットから顔をのぞかせる猫を写実的に仕上げた。

大量のメールの送り主は、ネットでその画像を見た人たちだ。なぜか多くは外国人。「かわいいね!」「オーダーはとってないの?」。一つひとつ売り物ではないと返事した。反響メールは引きも切らず、日に数十通届いた。

「フィアンセがねこシャツに夢中で。同じようなものを作ってもらえませんか?」。英国の男性の丁寧な文面に心動かされ、応じることに。以来、できる範囲で注文を受けた。アジア、米国、ロシア、サウジアラビア……。注文主の7割超が外国人だ。1着3万5千円前後。これまで約130着を作った。

依頼を受けると、何度もメールでやり取りする。愛猫の写真を送ってもらい、シャツの寸法や好みの生地を尋ねる。英語が得意なわけではない。辞書を引きつつメールを書く。

高校生から大学院生まで5人の子の母。子どもが小さいころから洋服を作っていた。刺繡を始めたのは10年ほど前から。どこかで習ったことはなく、独学だ。

家事を済ませた午前8時から針を持つ。長いときは1日5時間。猫の種類によっては40色もの糸を使い、約1週間で仕上げる。抱える注文は100件以上あり、長い人で3年待ち。ネット上には「hirokoのねこシャツ」をうたう偽物も出現した。

引用元: ポケットにリアルな猫? 主婦の手作りシャツに注文殺到:朝日新聞デジタル.

ネット広告のクリック数のうち88~98%はボットによるものだと判明 – GIGAZINE

アドリアン・ニール氏とサンダー・コーウェンホーヴェン氏の調査した結果、Google・Yahoo!・LinkedIn・Facebookの広告をクリックしていたボットには複数の種類が存在することが判明しています。ボットは大まかに分けると6種類存在したそうで、それらは以下の通り。

◆Basic(基本型)

広告プラットフォーム上にて、広告キャンペーンなどをターゲットに走る「指定されたURL」にのみHTTP GETリクエストを送るボット。

◆Enhanced(改良型)

特定の広告のためのHTTP GETリクエストを広告サーバーから受け、AJAXを使用してウェブブラウザのロードイベントを記録します。これが標準のロードイベントとは異なる場合、HTTP GETリクエストを送っているのはEnhanced型のボットとのこと。

◆Highly Enhanced(高度改良型)

クライアント側のコード実行が既知のコードと一致しない場合は、高度なJavaScriptプロセッサーメトリクスを使用するボット。

◆Advanced(進化型)

人間の基本的な動作を真似るもの。

◆Highly Advanced(高度進化型)

人の動作を真似るボットは、ロードしたページを数秒間表示したままにしたり、マウスやキーボードを使用したり、ページを上下にスクロールしたりします。しかし、ボットが行うような擬似的な無作為性はクラスター分析で検知可能とのこと。

◆Humanoid(ヒト型ボット)

ベジェ曲線やB-スプライン曲線などを使用して高度に人間の行動を真似るボット。

そして7日間の調査結果は以下の通り。各広告ネットワーク上での広告クリックは88~98%がボットによるもので、特にGoogleの広告ネットワーク上では98%がボットによるクリックです。また、Yahoo!やLinkedInの広告ネットワーク上には基本型のボットが存在しない、というのも大きなポイント。

引用元: ネット広告のクリック数のうち88~98%はボットによるものだと判明 – GIGAZINE.

HTTP/2 入門 – Yahoo! JAPAN Tech Blog

SPDYの仕様に含まれていた「サーバープッシュ」と呼ばれる機能もHTTP/2に引き継がれました。これは、クライアントのリクエストなしに、サーバーからレスポンスをプッシュするための仕組みです。例えば、CSSファイルと画像ファイルへのリンクを1つずつ含むHTMLファイルを、ブラウザーが読み込む状況を想像してみましょう。 一般的なブラウザーはページをレンダリングするために、サーバーからHTMLファイルを取得した後、さらにCSSファイル、画像ファイルをそれぞれサーバーから取得するかと思います。このような状況で、もしサーバーが「このHTMLファイルのレンダリングには、CSSファイルと画像ファイルも必要」ということが分かっていた場合は、サーバープッシュの出番です。サーバープッシュを使うと、以下の図のようにHTMLファイルのレスポンスを返す前に、ページのレンダリングに必要なリソースを事前にブラウザーに送信しておくことができます。

引用元: HTTP/2 入門 – Yahoo! JAPAN Tech Blog.

HTTP/2 入門 – Yahoo! JAPAN Tech Blog

先ほど、リクエストとレスポンスを同時並行で処理するためのストリームの仕組みについて説明しましたが、ストリームには優先度を設定することもできます。優先度を設定することで、クライアントはサーバーに対してどのリクエストを優先的に処理して欲しいのかを伝えることができます。もしサーバーが正しく優先度を処理できれば、クライアントは期待した通りの順序でリソースを受け取ることができます。

例えば、ブラウザーがCSSファイルと画像ファイルを並行してリクエストしている場面では、レンダリングへの影響が大きいCSSファイルを先に取得する必要があります。このような場面で、クライアントはCSSファイルへのリクエストを送信しているストリームの優先度を上げることで、CSSファイルを優先的に取得できる可能性があります。

引用元: HTTP/2 入門 – Yahoo! JAPAN Tech Blog.

これから始める人のためのNginx(1):高速・軽量・高機能……Nginxの基礎知識 (2/2) – @IT

Nginxが大量のリクエストでも同時に高速処理できるのは、イベント駆動方式を採用しているためです。

Webサーバーのように同時に複数の処理を行うには、ディスクやネットワークといったI/Oの多重化が必要になります。I/O多重化の実装には「select」や「poll」といったシステムコールが従来使われています。

Apache HTTPでプロセスベースやスレッドベースのMPM(マルチプロセッシングモジュール、注6)を選択すると、こうしたシステムコールが使用されます。select/pollでは、プログラムがアクセスするファイルネットワークソケットなどをOSが識別するための「ファイルディスクリプター」を1つ1つチェックします。チェックするディクリプタが増えれば処理にかかる時間も比例(注7)して長くなり、同時リクエスト数が2倍になれば処理に掛かる時間も2倍に膨らみます。

Niginxのイベント型では、I/O多重化を実装するのに「epoll」システムコールを使用します。epollではディスクリプターの状態がカーネル内で管理されるため、プログラムが1つ1つチェックする必要がなくなります。この場合、処理にかかる時間はリクエストによらず一定(注8)になります。そのためNginxは、万単位のリクエストも高速に効率良く処理することができます。

また、メモリの使用量が少ないのも特徴です。Apache HTTPのプロセスベースやスレッドベースのMPMでは、リクエストを処理するのにプロセスやスレッドを起動するため、使用するメモリもリクエスト数に応じて増加します。一方Nginxは単一プロセスで全てのリクエストを処理するため(注9)、リクエスト数に応じてメモリ使用量が変化することはありません。

Nginxの省リソースの恩恵は、数万単位のリクエストを処理するような大規模サイトだけではなく、組み込みPCやマイクロサーバーのように限られたリソースしか使用できない状況にも有効です。

引用元: これから始める人のためのNginx(1):高速・軽量・高機能……Nginxの基礎知識 (2/2) – @IT.

DSAS開発者の部屋:TCP高速化プロキシ「AccelTCP」を公開しました

AccelTCPは、伝送遅延の大きな回線におけるTCP通信を高速化するためのプロキシサーバ型のソフトウェアです。下記の図のように、クライアント側とオリジンサーバ側にそれぞれAccelTCPのプロキシを立てて、伝送遅延の大きな長距離ネットワーク上での通信を代理で行います。

コネクションプーリングによりTCP接続のオーバーヘッドを削減

プロキシサーバ間で、あらかじめ確立されたTCPコネクションを再利用する「コネクションプーリング」を行います。プロキシサーバ間のコネクションプーリングにより、TCPコネクションの確立時に発生する3Wayハンドシェイクのオーバーヘッドを削減し、比較的小さなデータのやりとりを行う通信の待ち時間を大幅に短縮できます。

TCPパラメータの最適化による高速化

プロキシサーバ間のTCP通信は、ウィンドウサイズなどのTCPパラメータをネットワークの特性に合わせ最適化することにより、データ転送効率が大きく向上します。

プロキシサーバ型によるメリット

プロキシサーバ型を採用することにより、クライアントおよびサーバサイドのプログラムを改修することなく「AccelTCP」を利用できます。また、プロキシサーバの設置により通信区間が分割され、各通信区間の往復遅延時間が減少します。これは、パケット消失時の再送時間の短縮につながり、通信全体の高速化が期待できます。

HTTPプロキシモード

ネームベースのバーチャルホストに対応するために、プロキシサーバによるHTTPリクエストのホストヘッダ書換えとXFFヘッダ挿入を行うHTTPプロキシモードを備えています。

通信データの暗号化とSSLオフロード機能を搭載

プロキシサーバ間の通信はSSL/TLSにより暗号化され、安全にやりとりできます。また、SSLオフロード機能を搭載しているためSSL非対応サーバのSSL化や、サーバからSSLの処理を分離することも可能です。

引用元: DSAS開発者の部屋:TCP高速化プロキシ「AccelTCP」を公開しました.

Amazon Web Services ブログ: 【AWS発表】ELBのConnection Draining – インスタンスをサービスから注意深く取り除く

Connection Drainingを有効にすると、Elastic Load Balancerからインスタンスを登録解除するプロセスに、かゆいところに手の届く、一手間が加わります。 今までは登録解除を行うと、処理中のリクエストがある場合でも、ロードバランサーとインスタンスの接続は強制的に切断されてしまっていましたが、この機能を有効にすると、設定したタイムアウトの間は、登録解除を実行した後のリクエストは受け付けないようにしつつ、現在処理中のリクエストが完了するまで待つようになります。この間、APIはこのインスタンスをInServiceとしてレポートし、メッセージは"Instance deregistration currently in progress"となります。タイムアウトの時間に到達すると、まだ接続が残っている場合も強制的に切断されます。

引用元: Amazon Web Services ブログ: 【AWS発表】ELBのConnection Draining – インスタンスをサービスから注意深く取り除く.