狠狠撸

狠狠撸Share a Scribd company logo
Webアプリケーションの
パフォーマンス向上のコツ
実践編
ISUCON夏期講習
2014/8/20
Masahiro Nagano
午前3時ぐらいまで
挑戦してみました
最終スコア
9246
やってみたことを
紹介します
初期スコア
1664
(1) 環境整備
静的コンテンツを
Reverse Proxy で配信
Reverse Proxy: クライアントからの接続を
受け、Applicationサーバに処理を中継す
る。画像,js,css などの静的コンテンツを返す
役割もある
Application Server: ユーザからのリクエス
トを受けて適切なページを構築?レスポン
スを行う
$ cat /etc/httpd/conf.d/isucon.conf
<VirtualHost *:80>
DocumentRoot /home/isu-user/isucon/webapp/public
RewriteEngine on
RewriteCond REQUEST_URI !^/favicon1.ico$
RewriteCond REQUEST_URI !^/(img|css|js)/
RewriteRule /(.*)$ http://localhost:5000/$1 [P]
</VirtualHost>
command
スコア
1664 => 1719
Nginx 化
? オープンソースのWebサーバ。高速に動
作し、メモリ使用量がすくないなどの
特徴があります
Apache vs. Nginx
worker worker worker
worker worker worker
worker worker worker
リクエスト
コンテキストスイッチが
大量発生
リクエスト
worker
1個のプロセスで
効率よく通信を処理
$ sudo yum install nginx
$ sudo service httpd stop
[program:nginx]
directory=/
command=/usr/sbin/nginx -c /home/isu-user/isucon/
nginx.conf
autostart = true
command
run.ini
nginx.confはのちほど公開します
スコア
1719 => 1764
(2) Perl にします
ワタシハパールチョットデキル
Perl の起動方法
command=/home/../isucon/env.sh carton exec --
start_server --path /tmp/app.sock -- 
plackup -s Starlet 
--max-workers 4 
--max-reqs-per-child 50000 
-E production -a app.psgi
run.ini
TCPではなくUNIXdomain
socketを使う
プロセスを長生きさせる
プロセスはあげすぎない
TCPの接続は高コスト
Reverse
Proxy
App
Server
リクエスト毎に
threewayhandshake
スコア
1764 => 1891
(3) アプリをみよう
“/” “/recent/xxx”
“/memo/xxxx” “/mypage”
“/” “/recent/xxx”
“/memo/xxxx” “/mypage”
DBへの問い合わせが重い
markdownの変換に
プロセス起動
DBへの問い合わせが
若干重い
(4) 外部プロセス起動
+use Text::Markdown::Hoedown qw//;
sub markdown {
my $content = shift;
- my ($fh, $filename) = tempfile();
- $fh->print(encode_utf8($content));
- $fh->close;
- my $html = qx{ ../bin/markdown $filename };
- unlink $filename;
- return $html;
+ Text::Markdown::Hoedown::markdown($content)
}
webapp/perl/lib/Isucon3/Web.pm
ここがmarkdownコマンドを
起動している
“/memo/xxxx”
スコア
1891 => 2233
(5) N+1 クエリ
my $memos = $self->dbh->select_all(
'SELECT * FROM memos WHERE is_private=0 ORDER BY
created_at DESC, id DESC LIMIT 100'
);
for my $memo (@$memos) {
$memo->{username} = $self->dbh->select_one(
'SELECT username FROM users WHERE id=?',
$memo->{user},
);
}
webapp/perl/lib/Isucon3/Web.pm
100回ルーーーープ
“/”
use the join, luke
id user_id id name
memosテーブル usersテーブル
id user_id name
memos JOIN users ON memos.user_id = user.id
my $memos = $self->dbh->select_all(
'SELECT memos.*,users.username
FROM memos JOIN users ON memos.user = users.id
WHERE memos.is_private=0
ORDER BY memos.created_at DESC,
memos.id DESC
LIMIT 100'
);
webapp/perl/lib/Isucon3/Web.pm
“/”,“/recent”
スコア
2233 => 2398
(6) インデックス
SELECT * FROM memos WHERE is_private=0 ORDER BY
created_at DESC LIMIT 100
id is_priv
ate
...
0
0
1
0
1
memosテーブル
id is_priv
ate
...
0
0
0
SORT
webapp/perl/lib/Isucon3/Web.pm
indexがないと
indexをつくる
cat <<'EOF' | mysql -u isucon isucon
ALTER TABLE memos ADD INDEX (is_private,created_at);
EOF
init.sh
B-Tree
0 1is_private
created_at
older newer older newer
B-Tree
0 1is_private
created_at
older newer older newer
B-Tree
0 1is_private
created_at
older newer older newer
B-Tree
0 1is_private
created_at
older newer older newer
スコア
2398 => 2668
?(7) タイトル生成
これ
 Webアプリケーションの パフォーマンス向上のコツ 実践編
mysql> show create table memosG
** 1. row **
Table: memos
Create Table: CREATE TABLE `memos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` int(11) NOT NULL,
`content` text,
`is_private` tinyint(4) NOT NULL DEFAULT '0',
`created_at` datetime NOT NULL,
`updated_at` timestamp NOT NULL DEFAULT,
PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=41311 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
mysql
titleカラムが存在しない!
<: $memo.content.split('r?n').first() :>
webapp/perl/views/index.tx
splitでCPU使用contentの転送で通信
cat <<'EOF' | mysql -u isucon isucon
ALTER TABLE memos ADD COLUMN title text;
UPDATE memos SET
title = substring_index(content,"n",1);
EOF
init.sh
titleカラムの追加
POST時に保存
$self->dbh->query(
??'INSERT INTO memos
(user, title, content, is_private, created_at)
VALUES (?, ?, ?, ?, now())
',
$user_id,
(split /r?n/, $content)[0],
$content,
$is_private,
);
webapp/perl/lib/Isucon3/Web.pm
my $memos = $self->dbh->select_all(
'SELECT memos.id, memos.title, memos.is_private,
memos.created_at, users.username
FROM memos JOIN users ON memos.user = users.id
WHERE memos.is_private=0
ORDER BY memos.created_at DESC,
memos.id DESC
LIMIT 100'
);
webapp/perl/lib/Isucon3/Web.pm
“/”,“/recent”
memos.*だとcontentを
取ってしまう
スコア
2668 => 3060
そして戦いは続く
Next Conan's HINT
“/mypage”の
インデックス
以上。

More Related Content

What's hot (20)

WebSocket Chat App Hands On on Microsoft Azure
WebSocket Chat App Hands On on Microsoft AzureWebSocket Chat App Hands On on Microsoft Azure
WebSocket Chat App Hands On on Microsoft Azure
Yoshio Terada
?
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
Shinji Tanaka
?
础苍蝉颈产濒别て?始めるインフラ构筑自动化
础苍蝉颈产濒别て?始めるインフラ构筑自动化础苍蝉颈产濒别て?始めるインフラ构筑自动化
础苍蝉颈产濒别て?始めるインフラ构筑自动化
dcubeio
?
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
Shinji Tanaka
?
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
SORACOM, INC
?
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
?
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Yuuki Namikawa
?
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
?
ECS for Docker Meetup #4
ECS for Docker Meetup #4ECS for Docker Meetup #4
ECS for Docker Meetup #4
Shinpei Ohtani
?
贰濒补蝉迟颈颁补肠丑别を利用する上でキャッシュをどのように有効に使うべきか
贰濒补蝉迟颈颁补肠丑别を利用する上でキャッシュをどのように有効に使うべきか贰濒补蝉迟颈颁补肠丑别を利用する上でキャッシュをどのように有効に使うべきか
贰濒补蝉迟颈颁补肠丑别を利用する上でキャッシュをどのように有効に使うべきか
Amazon Web Services Japan
?
ロール適用ツール ~ansible art~
ロール適用ツール ~ansible art~ロール適用ツール ~ansible art~
ロール適用ツール ~ansible art~
辰徳 斎藤
?
はじめてのSpring Boot
はじめてのSpring BootはじめてのSpring Boot
はじめてのSpring Boot
なべ
?
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTWeb Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Masahiro Nagano
?
窜补产产颈虫を2分でインストール
窜补产产颈虫を2分でインストール窜补产产颈虫を2分でインストール
窜补产产颈虫を2分でインストール
真乙 九龍
?
Amazon ElastiCacheのはじめ方
Amazon ElastiCacheのはじめ方Amazon ElastiCacheのはじめ方
Amazon ElastiCacheのはじめ方
Amazon Web Services Japan
?
mysqlcasual6-fabric
mysqlcasual6-fabricmysqlcasual6-fabric
mysqlcasual6-fabric
doublemarket
?
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya
?
第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)
Hiroki Ishikawa
?
Embulk 20150411
Embulk 20150411Embulk 20150411
Embulk 20150411
Hiroshi Nakamura
?
WebSocket Chat App Hands On on Microsoft Azure
WebSocket Chat App Hands On on Microsoft AzureWebSocket Chat App Hands On on Microsoft Azure
WebSocket Chat App Hands On on Microsoft Azure
Yoshio Terada
?
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
Shinji Tanaka
?
础苍蝉颈产濒别て?始めるインフラ构筑自动化
础苍蝉颈产濒别て?始めるインフラ构筑自动化础苍蝉颈产濒别て?始めるインフラ构筑自动化
础苍蝉颈产濒别て?始めるインフラ构筑自动化
dcubeio
?
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
SORACOM, INC
?
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
?
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Yuuki Namikawa
?
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ
?
贰濒补蝉迟颈颁补肠丑别を利用する上でキャッシュをどのように有効に使うべきか
贰濒补蝉迟颈颁补肠丑别を利用する上でキャッシュをどのように有効に使うべきか贰濒补蝉迟颈颁补肠丑别を利用する上でキャッシュをどのように有効に使うべきか
贰濒补蝉迟颈颁补肠丑别を利用する上でキャッシュをどのように有効に使うべきか
Amazon Web Services Japan
?
ロール適用ツール ~ansible art~
ロール適用ツール ~ansible art~ロール適用ツール ~ansible art~
ロール適用ツール ~ansible art~
辰徳 斎藤
?
はじめてのSpring Boot
はじめてのSpring BootはじめてのSpring Boot
はじめてのSpring Boot
なべ
?
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LTWeb Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Masahiro Nagano
?
窜补产产颈虫を2分でインストール
窜补产产颈虫を2分でインストール窜补产产颈虫を2分でインストール
窜补产产颈虫を2分でインストール
真乙 九龍
?
Pythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya
?
第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)
Hiroki Ishikawa
?

Similar to Webアプリケーションの パフォーマンス向上のコツ 実践編 (20)

Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
fukuoka.ex
?
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
fukuoka.ex
?
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517
akirahiguchi
?
厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略
takezoe
?
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
TomoyaTakegoshi
?
仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する
junichi anno
?
Node.js勉強会 Framework Koa
Node.js勉強会 Framework KoaNode.js勉強会 Framework Koa
Node.js勉強会 Framework Koa
kamiyam .
?
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたAKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
Hideaki Aoyagi
?
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azure
Keiji Kamebuchi
?
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
Tech Summit 2016
?
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
?
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
Yu Ito
?
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
?
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
Yu Ito
?
Dockerイメーシ?構築 実践テクニック
Dockerイメーシ?構築 実践テクニックDockerイメーシ?構築 実践テクニック
Dockerイメーシ?構築 実践テクニック
Emma Haruka Iwao
?
OpenStack Grizzly構築手順書
OpenStack Grizzly構築手順書OpenStack Grizzly構築手順書
OpenStack Grizzly構築手順書
VirtualTech Japan Inc.
?
OpenStack API
OpenStack APIOpenStack API
OpenStack API
Akira Yoshiyama
?
贰尘蝉肠谤颈辫迟别苍使ってみた
贰尘蝉肠谤颈辫迟别苍使ってみた贰尘蝉肠谤颈辫迟别苍使ってみた
贰尘蝉肠谤颈辫迟别苍使ってみた
Yuusuke Jinguuji
?
Vue.js で XSS
Vue.js で XSSVue.js で XSS
Vue.js で XSS
tobaru_yuta
?
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
fukuoka.ex
?
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
fukuoka.ex
?
Handlersocket 20110517
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517
akirahiguchi
?
厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略厂别补蝉补谤プロジェクト彻底攻略
厂别补蝉补谤プロジェクト彻底攻略
takezoe
?
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
TomoyaTakegoshi
?
仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する
junichi anno
?
Node.js勉強会 Framework Koa
Node.js勉強会 Framework KoaNode.js勉強会 Framework Koa
Node.js勉強会 Framework Koa
kamiyam .
?
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたAKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
Hideaki Aoyagi
?
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azure
Keiji Kamebuchi
?
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
Tech Summit 2016
?
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
?
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
Yu Ito
?
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
?
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
Yu Ito
?
Dockerイメーシ?構築 実践テクニック
Dockerイメーシ?構築 実践テクニックDockerイメーシ?構築 実践テクニック
Dockerイメーシ?構築 実践テクニック
Emma Haruka Iwao
?
贰尘蝉肠谤颈辫迟别苍使ってみた
贰尘蝉肠谤颈辫迟别苍使ってみた贰尘蝉肠谤颈辫迟别苍使ってみた
贰尘蝉肠谤颈辫迟别苍使ってみた
Yuusuke Jinguuji
?

More from Masahiro Nagano (20)

Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/MinAdvanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Masahiro Nagano
?
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
?
Big Master Data PHP BLT #1
Big Master Data PHP BLT #1Big Master Data PHP BLT #1
Big Master Data PHP BLT #1
Masahiro Nagano
?
Stream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LTStream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LT
Masahiro Nagano
?
Norikraて?作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraて?作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraて?作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraて?作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano
?
メルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えてメルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えて
Masahiro Nagano
?
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LTGazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Masahiro Nagano
?
Mackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LTMackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LT
Masahiro Nagano
?
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
Masahiro Nagano
?
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapmGazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano
?
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
?
奥别产アプリケーションとメモリ
奥别产アプリケーションとメモリ奥别产アプリケーションとメモリ
奥别产アプリケーションとメモリ
Masahiro Nagano
?
最近作ったN個のCPANモジュール Yokohama.pm #10
最近作ったN個のCPANモジュール Yokohama.pm #10最近作ったN個のCPANモジュール Yokohama.pm #10
最近作ったN個のCPANモジュール Yokohama.pm #10
Masahiro Nagano
?
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
Masahiro Nagano
?
How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server
Masahiro Nagano
?
Apache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-Thon
Apache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-ThonApache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-Thon
Apache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-Thon
Masahiro Nagano
?
1台から500台までの惭测厂蚕尝运用(驰础笔颁::础蝉颈补编)
1台から500台までの惭测厂蚕尝运用(驰础笔颁::础蝉颈补编)1台から500台までの惭测厂蚕尝运用(驰础笔颁::础蝉颈补编)
1台から500台までの惭测厂蚕尝运用(驰础笔颁::础蝉颈补编)
Masahiro Nagano
?
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/MinAdvanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Masahiro Nagano
?
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
?
Stream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LTStream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LT
Masahiro Nagano
?
Norikraて?作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraて?作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraて?作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraて?作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano
?
メルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えてメルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えて
Masahiro Nagano
?
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LTGazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Masahiro Nagano
?
Mackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LTMackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LT
Masahiro Nagano
?
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
Masahiro Nagano
?
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapmGazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano
?
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
?
奥别产アプリケーションとメモリ
奥别产アプリケーションとメモリ奥别产アプリケーションとメモリ
奥别产アプリケーションとメモリ
Masahiro Nagano
?
最近作ったN個のCPANモジュール Yokohama.pm #10
最近作ったN個のCPANモジュール Yokohama.pm #10最近作ったN個のCPANモジュール Yokohama.pm #10
最近作ったN個のCPANモジュール Yokohama.pm #10
Masahiro Nagano
?
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
Masahiro Nagano
?
How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server
Masahiro Nagano
?
Apache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-Thon
Apache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-ThonApache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-Thon
Apache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-Thon
Masahiro Nagano
?
1台から500台までの惭测厂蚕尝运用(驰础笔颁::础蝉颈补编)
1台から500台までの惭测厂蚕尝运用(驰础笔颁::础蝉颈补编)1台から500台までの惭测厂蚕尝运用(驰础笔颁::础蝉颈补编)
1台から500台までの惭测厂蚕尝运用(驰础笔颁::础蝉颈补编)
Masahiro Nagano
?

Webアプリケーションの パフォーマンス向上のコツ 実践編