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

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 !^/favicon.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”の
インデックス
以上。
1 of 50

Recommended

ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版 by
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版Masahiro Nagano
55.5K views105 slides
ISUCONの話(夏期講習2014) by
ISUCONの話(夏期講習2014)ISUCONの話(夏期講習2014)
ISUCONの話(夏期講習2014)SATOSHI TAGOMORI
25.8K views30 slides
Webアプリケーションの パフォーマンス向上のコツ 概要編 by
 Webアプリケーションの パフォーマンス向上のコツ 概要編 Webアプリケーションの パフォーマンス向上のコツ 概要編
Webアプリケーションの パフォーマンス向上のコツ 概要編Masahiro Nagano
36.5K views40 slides
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月 by
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月Masahiro Nagano
42.7K views51 slides
おすすめ gem by
おすすめ gemおすすめ gem
おすすめ gemchocoby
3.9K views55 slides
blogサービスの全文検索の話 - #groonga を囲む夕べ by
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べMasahiro Nagano
10.9K views48 slides

More Related Content

What's hot

WebSocket Chat App Hands On on Microsoft Azure by
WebSocket Chat App Hands On on Microsoft AzureWebSocket Chat App Hands On on Microsoft Azure
WebSocket Chat App Hands On on Microsoft AzureYoshio Terada
13.6K views52 slides
Performance and Scalability of Web Service by
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web ServiceShinji Tanaka
1.9K views69 slides
Ansibleで始めるインフラ構築自動化 by
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化dcubeio
56.1K views63 slides
Using Windows Azure by
Using Windows AzureUsing Windows Azure
Using Windows AzureShinji Tanaka
2.2K views47 slides
Amazon ElastiCache - AWSマイスターシリーズ by
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズSORACOM, INC
7.8K views57 slides
My sql casual_in_fukuoka_vol1 by
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1Makoto Haruyama
2.9K views50 slides

What's hot(20)

WebSocket Chat App Hands On on Microsoft Azure by Yoshio Terada
WebSocket Chat App Hands On on Microsoft AzureWebSocket Chat App Hands On on Microsoft Azure
WebSocket Chat App Hands On on Microsoft Azure
Yoshio Terada13.6K views
Performance and Scalability of Web Service by Shinji Tanaka
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
Shinji Tanaka1.9K views
Ansibleで始めるインフラ構築自動化 by dcubeio
Ansibleで始めるインフラ構築自動化Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio56.1K views
Amazon ElastiCache - AWSマイスターシリーズ by SORACOM, INC
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
SORACOM, INC7.8K views
My sql casual_in_fukuoka_vol1 by Makoto Haruyama
My sql casual_in_fukuoka_vol1My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama2.9K views
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編) by Yuuki Namikawa
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Yuuki Namikawa17.6K views
Spring bootでweb セキュリティ(ログイン認証)編 by なべ
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
なべ 32.7K views
ECS for Docker Meetup #4 by Shinpei Ohtani
ECS for Docker Meetup #4ECS for Docker Meetup #4
ECS for Docker Meetup #4
Shinpei Ohtani13.6K views
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか by Amazon Web Services Japan
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ロール適用ツール ~ansible art~ by 辰徳 斎藤
ロール適用ツール ~ansible art~ロール適用ツール ~ansible art~
ロール適用ツール ~ansible art~
辰徳 斎藤834 views
はじめてのSpring Boot by なべ
はじめてのSpring BootはじめてのSpring Boot
はじめてのSpring Boot
なべ 3.4K views
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT by Masahiro Nagano
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 Nagano11.8K views
Zabbixを2分でインストール by 真乙 九龍
Zabbixを2分でインストールZabbixを2分でインストール
Zabbixを2分でインストール
真乙 九龍1.9K views
mysqlcasual6-fabric by doublemarket
mysqlcasual6-fabricmysqlcasual6-fabric
mysqlcasual6-fabric
doublemarket12.9K views
Pythonユーザのための構成管理入門 #pyconapac by Takeshi Komiya
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya10.1K views
第9回 OpenStack 勉強会(Glance) by Hiroki Ishikawa
第9回 OpenStack 勉強会(Glance)第9回 OpenStack 勉強会(Glance)
第9回 OpenStack 勉強会(Glance)
Hiroki Ishikawa6K views

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

Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります by
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
3K views33 slides
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」 by
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
4.9K views35 slides
Handlersocket 20110517 by
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517akirahiguchi
2.5K views65 slides
Seasarプロジェクト徹底攻略 by
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
5.2K views36 slides
2019年度 CaaS ワークショップ @ NTTコム by
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコムTomoyaTakegoshi
27.5K views56 slides
仮想化した DC を PowerShell で複製する by
仮想化した DC を PowerShell で複製する仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製するjunichi anno
3.8K views39 slides

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

Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります by fukuoka.ex
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.ex3K views
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」 by 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アプリをサクッと書いてみる」
fukuoka.ex4.9K views
Handlersocket 20110517 by akirahiguchi
Handlersocket 20110517Handlersocket 20110517
Handlersocket 20110517
akirahiguchi2.5K views
Seasarプロジェクト徹底攻略 by takezoe
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
takezoe5.2K views
2019年度 CaaS ワークショップ @ NTTコム by TomoyaTakegoshi
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
TomoyaTakegoshi27.5K views
仮想化した DC を PowerShell で複製する by junichi anno
仮想化した DC を PowerShell で複製する仮想化した DC を PowerShell で複製する
仮想化した DC を PowerShell で複製する
junichi anno3.8K views
Node.js勉強会 Framework Koa by kamiyam .
Node.js勉強会 Framework KoaNode.js勉強会 Framework Koa
Node.js勉強会 Framework Koa
kamiyam .8.6K views
AKS と ACI を組み合わせて使ってみた by Hideaki Aoyagi
AKS と ACI を組み合わせて使ってみたAKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
Hideaki Aoyagi3.1K views
Infrastructure as code for azure by Keiji Kamebuchi
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azure
Keiji Kamebuchi4.5K views
Web Operations and Perl kansai.pm#14 by Masahiro Nagano
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano2.1K views
シラサギハンズオン 東京 by Yu Ito
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
Yu Ito2.9K views
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方 by linzhixing
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing3.6K views
徳島OSS勉強会第四回 シラサギハンズオン 0925 by Yu Ito
徳島OSS勉強会第四回 シラサギハンズオン 0925徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
Yu Ito431 views
Dockerイメージ構築 実践テクニック by Emma Haruka Iwao
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
Emma Haruka Iwao23K views
Vue.js で XSS by tobaru_yuta
Vue.js で XSSVue.js で XSS
Vue.js で XSS
tobaru_yuta7.2K views

More from Masahiro Nagano

Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min by
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/MinMasahiro Nagano
48.1K views33 slides
Rhebok, High Performance Rack Handler / Rubykaigi 2015 by
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015Masahiro Nagano
76.1K views67 slides
Big Master Data PHP BLT #1 by
Big Master Data PHP BLT #1Big Master Data PHP BLT #1
Big Master Data PHP BLT #1Masahiro Nagano
39.3K views19 slides
Stream processing in Mercari - Devsumi 2015 autumn LT by
Stream processing in Mercari - Devsumi 2015 autumn LTStream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LTMasahiro Nagano
3K views20 slides
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT by
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTMasahiro Nagano
38.8K views21 slides
メルカリでのNorikraの活用、 Mackerelを添えて by
メルカリでのNorikraの活用、 Mackerelを添えてメルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えてMasahiro Nagano
71K views39 slides

More from Masahiro Nagano(20)

Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min by Masahiro Nagano
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 Nagano48.1K views
Rhebok, High Performance Rack Handler / Rubykaigi 2015 by Masahiro Nagano
Rhebok, High Performance Rack Handler / Rubykaigi 2015Rhebok, High Performance Rack Handler / Rubykaigi 2015
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano76.1K views
Big Master Data PHP BLT #1 by Masahiro Nagano
Big Master Data PHP BLT #1Big Master Data PHP BLT #1
Big Master Data PHP BLT #1
Masahiro Nagano39.3K views
Stream processing in Mercari - Devsumi 2015 autumn LT by Masahiro Nagano
Stream processing in Mercari - Devsumi 2015 autumn LTStream processing in Mercari - Devsumi 2015 autumn LT
Stream processing in Mercari - Devsumi 2015 autumn LT
Masahiro Nagano3K views
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT by Masahiro Nagano
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LTNorikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano38.8K views
メルカリでのNorikraの活用、 Mackerelを添えて by Masahiro Nagano
メルカリでのNorikraの活用、 Mackerelを添えてメルカリでのNorikraの活用、 Mackerelを添えて
メルカリでのNorikraの活用、 Mackerelを添えて
Masahiro Nagano71K views
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT by Masahiro Nagano
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 Nagano39.2K views
Mackerel & Norikra mackerel meetup #4 LT by Masahiro Nagano
Mackerel & Norikra mackerel meetup #4 LTMackerel & Norikra mackerel meetup #4 LT
Mackerel & Norikra mackerel meetup #4 LT
Masahiro Nagano36.6K views
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術 by Masahiro Nagano
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
Masahiro Nagano18.4K views
Gazelle - Plack Handler for performance freaks #yokohamapm by Masahiro Nagano
Gazelle - Plack Handler for performance freaks #yokohamapmGazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano13.1K views
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014 by Masahiro Nagano
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano32.9K views
Webアプリケーションとメモリ by Masahiro Nagano
WebアプリケーションとメモリWebアプリケーションとメモリ
Webアプリケーションとメモリ
Masahiro Nagano13.9K views
最近作ったN個のCPANモジュール Yokohama.pm #10 by Masahiro Nagano
最近作ったN個のCPANモジュール Yokohama.pm #10最近作ったN個のCPANモジュール Yokohama.pm #10
最近作ったN個のCPANモジュール Yokohama.pm #10
Masahiro Nagano2.7K views
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題 by 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を受けての話題
Masahiro Nagano8.6K views
How to build a High Performance PSGI/Plack Server by 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
Masahiro Nagano18.6K views
Apache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-Thon by Masahiro Nagano
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 Nagano8.1K views
1台から500台までのMySQL運用(YAPC::Asia編) by Masahiro Nagano
1台から500台までのMySQL運用(YAPC::Asia編)1台から500台までのMySQL運用(YAPC::Asia編)
1台から500台までのMySQL運用(YAPC::Asia編)
Masahiro Nagano11.3K views

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