Server Side Programming ASP1 Server Side Programming Database Integration Peter O’Grady.
Web Performance Part 3 "Server-side tips"
-
Upload
binary-studio -
Category
Software
-
view
309 -
download
0
description
Transcript of Web Performance Part 3 "Server-side tips"
Web PerformanceServer-side Tips
Andrew Kovalenko
Table of contents➔ Nginx vs Apache➔ Apache performance tuning➔ Nginx performance tuning➔ Web server accelerators➔ Varnish➔ PageSpeed module
Total number of websites
NetCraft: http://news.netcraft.com/archives/2013/06/06/june-2013-web-server-survey-3.html
Web server developers:Market share of active sites
NetCraft: http://news.netcraft.com/archives/2013/06/06/june-2013-web-server-survey-3.html
Nginx vs Apache (requests/seconds)
Amazon EC2Micro Instance
Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
613 MB RAM
Ubuntu 13.10
index.html612 B
earth.png3.7 MB
Nginx vs Apache (memory usage)
Apache basic architecture
Nginx basic architecture
Frontend (Nginx) - backend (Apache)
Front endClient
Back end
➔ php...
Static content
➔ js➔ css➔ images➔ video
...
Nginx config
Light content (html, css, js, xml, rss, txt) Heavy content (photo, video, audio)
➔ g-zip compression➔ expires headers for content proxy➔ file descriptor caching
➔ virtual folder for frequently asked content➔ SSD➔ cache proxied requests
worker_processes, worker_priority, worker_connections, sendfile on, access_log off, tcp_nopush on, gzip on
Apache configRun-TimeCompile-Time
➔ load only required modules➔ choose appropriate MPM
HTTP Compression & Caching
➔ AllowOverride➔ FollowSymLinks and
SymLinksIfOwnerMatch➔ Content Negotiation➔ MPM config➔ KeepAlive and KeepAliveTimeout
Accept-Encoding: gzip,deflate
Separate Static
RewriteCond for images
Other configs
Web server acceleratorsWeb server accelerator
Compression Operatingsystem
Browser Caching Edge Side
Includes
Prefetching Optimizecode
Preemptivehostnameresolution
Ad removal
Client
aiCache Gzip Linux All Yes No Yes Yes Yes All
Apache Traffic Server
Linux
CACHEbox None Linux All Yes No Yes No No Yes End user/ISP
Ishlangu Gzip Linux All Yes No No Yes Yes No All
LotServer None Linux, Windows
All No No No No No No Content Provider
nginx Gzip Unix All Yes No No No Yes No user/ISP
Polipo None Unix, Windows All Yes No No No No No user/ISP
SiteCelerate Text & Images All Yes No Yes No No No user/ISP
Squid None Unix, Windows All Yes Yes No No No No user/ISP
Varnish Gzip on-the-fly compression and decompression
Unix All Yes Yes No No No If You want All
Ziproxy Images, text & any gzippable data
Unix All No No No HTML, JS, CSS
Yes Yes ISP
Varnish
SPDY: PageSpeed moduleSupported platforms:➔ CentOS/Fedora (32-bit and 64-bit)➔ Debian/Ubuntu (32-bit and 64-bit)
Apache 2.2 and higherNginx 1.3.15 and higher, for lower versions build from sources
PageSpeed features➔ Optimizing caching➔ Minimizing round-trip times➔ Minimizing request overhead➔ Minimizing payload size➔ Optimizing browser rendering➔ Optimizing for mobile
all by filters...
add_instrumentationAdds client-side latency instrumentation
Head:window.mod_pagespeed_start = Number(new Date());
End body:pagespeed.addInstrumentationInit('/mod_pagespeed_beacon', 'load', '', 'http://www.modpagespeed.com/add_instrumentation.html');
combine_css
local_storage_cache
resize_mobile_images
And a lot more➔ collapse_whitespace➔ combine_javascript➔ dedup_inlined_images➔ defer_javascript➔ extend_cache➔ extend_cache_pdfs➔ inline_css➔ inline_javascript➔ inline_preview_images➔ insert_dns_prefetch➔ move_css_above_scripts➔ move_css_to_head➔ lazyload_images➔ outline_css
➔ outline_javascript➔ prioritize_critical_css➔ remove_comments➔ remove_comments➔ remove_quotes➔ resize_rendered_image_dimensions➔ rewrite_css➔ rewrite_javascript➔ rewrite_style_attributes➔ sprite_images➔ trim_urls➔ etc...