SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
strace for Perl 
Mongers 
zentooo @ DeNA
ß…Ãu
@zentoo or @zentooo
°ntDtÒ–ê±
áϱ–©–ÖòÖèÂÇÔ 
¨–ß
p€g§a†ó
àÇ–®w©À{N–ŠgŸ
stracet{ 
Ö캸ÆsPía˜rP—¶¸Åß²–êžtracee—k 
zÖê
iz¼w|¶¸Åß²–êo 
rD”ƒ
¶¸Åß²–ê{|¡Öé°–¶æòX 
j[OSz API 
File I/O (open, lseek, write, read, close) 
Network (socket, bind, listen, accept, connect) 
Memory (brk, sbrk, mmap) 
Process (fork, wait, kill) 
Thread (pthread_create)
¶¸Åß²–êž-,gfPerlsÔ £ê 
I/OsY—Wƒ
¶¸Åß²–êUYsPerlscPÖìº 
¸žf˜—Wƒ
¶¸Åß²–êUYsPerlsÌÂÇî–® 
Öì¯èÞò¯Xca—Wƒ
¡Öé°–¶æò{OSzzzÖ
±¿seX
Q. Web¡Öé°–¶æòz› 
ÌorD”ƒ
A. HTTP鮧¸Çž*]r 
HTTPë¸Üò¸ž4e_tl 
”„
Q. HTTP鮧¸Çž*]r 
HTTPë¸Üò¸ž4eoru 
RPR_tl”„
A. acceptcrreadcrwritecrclosel 
”Ϫãì–„
ŠNgm®]
Web¡ÖézV›Ì 
1. HTTP鮧¸Çž*]— 
2. _zw‰•zÈèÝXN— 
MySQL„z¡®º¸ 
memcached„z¡®º¸ 
(Æ–¾z^|logz„Y‹etc) 
3. /_zw‰•zÈèÝXN— 
4. HTTPë¸Üò¸ž4e
¶¸Åß²–ê§w™e—t... 
1. int fd = accept(...); // 鮧¸Ç*]r 
2. read(fd, ...);{{{// 鮧¸ÇzÆ?­Ÿs 
3. _zw‰•zÈèÝXN— 
socket, connect, write, read, close 
open, write, read, close 
4. /_zw‰•zÈèÝXN— 
5. write(fd, ...);{{{// ë¸Üò¸4e
a•w»ƒe—t 
1. int fd = accept(...); // 鮧¸Ç*]r 
2. read(fd, ...);{{{// 鮧¸ÇzÆ?­Ÿs 
3. ‰•zÈèÝ / 
4. write(fd, ...);{{{// ë¸Üò¸4e
DEMO #1 - just to strace
stracež­ŒÔz¬Úò (1) 
↓システムコール名 返り値↓ 
read(5, GET / HTTP/1.0rnHost: xxx-xxxxxx..., 131072) = 308 
↑引数(バッファなどの場合はよしなに展開される)
stracež­ŒÔz¬Úò (2) 
fd (Ô £êÆ¢¸®éÖ¾) w¶öe— 
↓コレ 
read(5, GET / HTTP/1.0rnHost: xxx-xxxxxx..., 131072) = 308
fd (Ô £êÆ¢¸®éÖ¾) 
Ô £êÌÂÇî–®¼°ÂÇvuž³ÎBckÖ9 
„zÜ£ò¾ 
(0, 1, 2) = (stdin, stdout, stderr) 
i˜’ø{«zw•˜—
fd with file 
int fd = open(/tmp/yapc2014, ...); 
read(fd, buffer); 
write(fd, buffer); 
close(fd);
fd with client socket 
int fd = socket(); 
connect(fd, addr, ...); 
read(fd, buffer); 
write(fd, buffer); 
close(fd);
fdžðRzXè2z2˜ 
Ô £êzf# 
opens4orYkfdXclosewUa˜—Šs 
®è£¡òÇ´£Èsz¼°ÂÇzf# 
sockets4orYkfdXclosewUa˜—Šs 
´–Ï´£ÈwV]—®è£¡òǼ°ÂÇzf# 
accepts4orYkfdXclosewUa˜—Šs
Web¡Öézstracež­ŒÔz¬Úò 
// こっから 
accept(4, {sa_family=AF_INET, ...)}, [16]) = 5 
(中略) 
read(5, GET / HTTP/1.0rnHost: xxx-xxxxxx..., 131072) = 308 
(中略) 
write(5, HTTP/1.1 200 OKrnDate: Sun, 10 A..., 2218) = 2218 
// ここまでが一つのリクエスト/レスポンス 
// keepaliveしてないならここで close
DEMO #2 - strace web app
N[Šs2˜vzsº“Ž 
Twiggy, Twiggy::Preforkvuevent-drivenv´–Ï 
(epoll_wait) 
multi socket listencr—ÔzStarlet (select)
Web¡ÖézV›Ì($) 
lPkPzÝ „Ðzó
 sþUwv— 
HTTP鮧¸Çž*]— 
_zw‰•zÈèÝXN— 
MySQL„z¡®º¸ 
memcached„z¡®º¸ 
(Æ–¾z^|logz„Y‹etc) 
/_zw‰•zÈèÝXN— 
HTTPë¸Üò¸ž4e
¶öÜ£òÇ - MySQL 
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 10 
fcntl(10, F_SETFL, O_RDONLY) = 0 
fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) 
fcntl(10, F_GETFL) = 0x2 (flags O_RDWR) 
fcntl(10, F_SETFL, O_RDWR|O_NONBLOCK) = 0 
connect(10, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr(10.0.0.1 
fcntl(10, F_SETFL, O_RDWR) = 0 
poll([{fd=10, events=POLLIN|POLLPRI}], 1, 4000) = 1 ([{fd=10, revents=POLLIN} 
setsockopt(10, SOL_SOCKET, SO_RCVTIMEO, 200334110000000setsockopt(10, SOL_SOCKET, SO_SNDTIMEO, 200334110000000setsockopt(10, SOL_IP, IP_TOS, [8], 4) = 0 
setsockopt(10, SOL_TCP, TCP_NODELAY, [1], 4) = 0 
setsockopt(10, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
¶öÜ£òÇ - memcached 
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 8 
fcntl(8, F_GETFL) = 0x2 (flags O_RDWR) 
fcntl(8, F_SETFL, O_RDWR|O_NONBLOCK) = 0 
connect(8, {sa_family=AF_INET, sin_port=htons(11211), sin_addr=inet_addr(10.0.0.1 
poll([{fd=8, events=POLLOUT}], 1, 250) = 1 ([{fd=8, revents=POLLOUT}]) 
getsockopt(8, SOL_SOCKET, SO_ERROR, [-511598409602301952], [4]) = 0 
setsockopt(8, SOL_TCP, TCP_NODELAY, [1], 4) = 0 
sendmsg(8, {msg_name(0)=NULL, msg_iov(6)=[{set, 3}, { csrf_token:, 20}, 
read(8, 0x59f9f50, 1536) = -1 EAGAIN (Resource temporarily unavailable) 
poll([{fd=8, events=POLLIN}], 1, 300) = 1 ([{fd=8, revents=POLLIN}]) 
read(8, STOREDrn, 1536)
DEMO #3 - strace web app 
with DB and memcached
Öì¯èß{­oktV–w 
”WvP 
•d®§éžDxPcr— 
­ork”–cache misscr— 
Ï7wretrycr— 
TCP ConnectionžPŠ›grvP 
TCP ConnectionmŸtˆ˜rvP
öº #1 - memcached retry 
problem
+180ms 
tN—APIzë¸Üò¸X|éé–¸ w180msËB 
50ms or diev•4x[•P¶vvPtP]vPëØê
?_	 
Cache::Memcached::FastzèÂЖá·ä–ê 
(Ò1
XNokzs)
M[èo 
strace -p $pid -e 'trace=sendmsg' 
(Cache::Memcached::FastXsendmsgžžRz{—orPk)
Ë 
sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_local:, 13} 
sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_local:, 13} 
sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_local:, 13} 
sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_local:, 13} 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote1:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote1:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote1:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote1:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote2:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote2:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote2:, 
sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { cache_remote2:,
̾|•c 
èÂЖá·ä–êwretryAÿ (maxs3x) XâorPk 
Cache::Memcached::Fastzget{cache misstiz)z§ 
è–žæ*sYvP 
cache missz_w3xretrycrk 
retry¹{20msec 
20 msec × 3 (retry) × 3 = 180 msec 
izhit rate{uRvŸƒtPRø{N–ppŽget,{ 
retrycvP7cžâ˜rwE
Ë - with timestamp 
22:45:34.517703 sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { 22:45:34.537967 sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { 22:45:34.558936 sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { 22:45:34.579275 sendmsg(6, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, { 22:45:34.587428 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:34.608296 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:34.628673 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:34.649146 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:35.135129 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:35.155516 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:35.176027 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3}, 
22:45:35.196453 sendmsg(11, {msg_name(0)=NULL, msg_iov(4)=[{get, 3},
stracecr‹—t´ö¿ 
ÙžpWvPÖêwc—
ÙžpWvPÖê 
strace 
tcpdump 
gdb
Ùžp[Žz 
zM6 
¡Öézì¯ 
Ôw{¡Öéz²–È
öº #2 - accept(2) 
thundering herd
What is thundering herd 
The thundering herd problem occurs when a large 
number of processes waiting for an event are awoken 
when that event occurs, but only one process is able to 
proceed at a time. - Wikipedia 
*[zÖ캸X§zÇé«–s•Ôw”YceX|ö 
Uz{v{´zÖ캸scW훘vP (Šk{í› 
˜—…Y) Ôwé¼–¸XÏ7wv—þU 
”[N—z{Æ–¾zremote cacheXexpireckÔw´D 
wDB„z®§éX—|tW
accept(2) and prefork server 
DÖ캸X•Ôw´pzsocket fdžacceptc|i˜j 
˜Õì® 
Linux kernelX”cvwqueueingcr[˜—zs|鮧 
¸ÇXakÔwOYÖX—Ö캸{´pl] 
(ˆæ) 
http://d.hatena.ne.jp/naoya/20070311/1173629378
accept(2) and event-driven/ 
multi-process server 
DÖ캸X•Ôw´pzsocket fdžepoll_waitsÁ 
listen socketXreadIÿ = acceptXIÿwvokÔFs 
epoll_waitcr—ÀrzÖ캸XOYÖX— 
´pzÖ캸Xacceptw´ 
)zÖ캸{óorî (EAGAIN)
accept(2) thundering herd 
accept(2)zó–XÖ캸Dt鮧¸ÇDzÀ]‘s 
Pf 
loadXÖX— 
vmstatsf—t... 
ustsytcsz–Xg–ÖX— (50, 50, 100000tW) 
Ö캸zcontext switch
TeZXOÀWt­›˜—
DEMO #3 - EAGAIN and again 
and again
wEn 
iŽiŽXevent-drivenvŸlciŸvwR£wÖ캸 
N^v[rPP”y
vv,w”–100Ö캸[•Pw (¼{300[•PN 
ok)
7• 
xæz¡–¬Å®ÀâltÇtuRc”RŽvPDXcr 
P— 
Monoceros‹kPwaccepte—Ö캸t鮧¸Çž 
{ve—Ö캸žñÀw
]—tWƒ 
event-driventÝêÀÖ캸{øPgXuP with Perl 
IO::AIO (AnyEvent::IOzbackend) tWŽÇt¶ò¯êÖ 
캸¼völok–...
Štwâ–Še
stracez›—Pt_™ 
ß¿váQXVVP (ø˜˜|uRwsŽv—X) 
kŠwO_—,zÌÎw{¹PrvP (Devel::KYTProftW 
sì¯cck[X”Pƒ¥
stracez”Pt_™ 
̼XÓPs|Ö캸wattache—l]sef˜ 
— 
Web¡Öé°–¶æòzDÓmX
W—
stracelt
W•vP_t 
¶¸Åß²–êž]›vPvCPUÏ¥òÈvÏ7v{v 
¡Öé°–¶æòszÏ7loop, deep recursion 
µzuP¡ê³é¹ßtW 
-d NYTProf 
Çèò¸Ü–Çä’AszþU 
tcpdumptWtsharktWngreptWžPŠc“R
straces
W—_t 
鮧¸Ç*]r|ë¸Üò¸4eŠszÔì– 
Æ–¾¡®º¸zöA 
öUwDxmemcachedW•getcr—W|DxDB‹w 
Por—W 
öUwcachea˜rP—data 
öUwPícrP—SELECT 
iz)|ŽP	z6crPvP“”
H 
|k–¼l]ustrace{¸ÿzÖêdvP 
žT|ÚàW•ä—tWiŸv_tŽvP 
sŽ|žP[X
WorP˜|V7€­¦ 
Web¡ÖézDÓmX
W—
ˆæ` 
The Linux Programing Interface 
ŠPc|K¨„€h(÷§cWvP]u...)Vee 
à˜§hŽN—]u1000Ù–·Ý|pŠ–„€s{v[ 
ï1 
À󭌫Pvc|éÔ ëò¸tcrŽ6q 
äz˜{Veel]u|±¿­Œz{ޏXûPzs 
pRzLinuxÖì¯èÞò¯ 
tWz[X?|{PPWŽc 
˜vP
™G (?) 
Web+DBz2014ñ10KÿwMÌ(Perl Hackers Hub)ž„Wg 
rá[_twv–Šck

Weitere ähnliche Inhalte

Was ist angesagt?

Pf: the OpenBSD packet filter
Pf: the OpenBSD packet filterPf: the OpenBSD packet filter
Pf: the OpenBSD packet filterGiovanni Bechis
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newYiwei Ma
 
Abusing text/template for data transformation
Abusing text/template for data transformationAbusing text/template for data transformation
Abusing text/template for data transformationArnaud Porterie
 
download presentation
download presentationdownload presentation
download presentationwebhostingguy
 
GeeCON 2013 - EJB application guided by tests
GeeCON 2013 - EJB application guided by testsGeeCON 2013 - EJB application guided by tests
GeeCON 2013 - EJB application guided by testsJakub Marchwicki
 
Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programsBadoo Development
 
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
 SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani TadayonRedis Labs
 
nouka inventry manager
nouka inventry managernouka inventry manager
nouka inventry managerToshiaki Baba
 
Python and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunPython and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunJIHUN KIM
 
Automated tests - facts and myths
Automated tests - facts and mythsAutomated tests - facts and myths
Automated tests - facts and mythsWojciech Sznapka
 
BlockChain implementation by python
BlockChain implementation by pythonBlockChain implementation by python
BlockChain implementation by pythonwonyong hwang
 
Go for the paranoid network programmer
Go for the paranoid network programmerGo for the paranoid network programmer
Go for the paranoid network programmerEleanor McHugh
 

Was ist angesagt? (20)

Vcs28
Vcs28Vcs28
Vcs28
 
Pf: the OpenBSD packet filter
Pf: the OpenBSD packet filterPf: the OpenBSD packet filter
Pf: the OpenBSD packet filter
 
Containers for sysadmins
Containers for sysadminsContainers for sysadmins
Containers for sysadmins
 
36 gotas de-sabiduria
36 gotas de-sabiduria36 gotas de-sabiduria
36 gotas de-sabiduria
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 new
 
Abusing text/template for data transformation
Abusing text/template for data transformationAbusing text/template for data transformation
Abusing text/template for data transformation
 
download presentation
download presentationdownload presentation
download presentation
 
GeeCON 2013 - EJB application guided by tests
GeeCON 2013 - EJB application guided by testsGeeCON 2013 - EJB application guided by tests
GeeCON 2013 - EJB application guided by tests
 
Profiling and optimizing go programs
Profiling and optimizing go programsProfiling and optimizing go programs
Profiling and optimizing go programs
 
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
 SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
SSH I/O Streaming via Redis-based Persistent Message Queue -Mani Tadayon
 
nouka inventry manager
nouka inventry managernouka inventry manager
nouka inventry manager
 
Python and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunPython and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihun
 
Rabia
RabiaRabia
Rabia
 
About memcached
About memcachedAbout memcached
About memcached
 
Automated tests - facts and myths
Automated tests - facts and mythsAutomated tests - facts and myths
Automated tests - facts and myths
 
BlockChain implementation by python
BlockChain implementation by pythonBlockChain implementation by python
BlockChain implementation by python
 
Ruby Postgres
Ruby PostgresRuby Postgres
Ruby Postgres
 
Memory Management in WordPress
Memory Management in WordPressMemory Management in WordPress
Memory Management in WordPress
 
root-ksk-2010
root-ksk-2010root-ksk-2010
root-ksk-2010
 
Go for the paranoid network programmer
Go for the paranoid network programmerGo for the paranoid network programmer
Go for the paranoid network programmer
 

Ähnlich wie strace for Perl Mongers

Debugging: Rules & Tools
Debugging: Rules & ToolsDebugging: Rules & Tools
Debugging: Rules & ToolsIan Barber
 
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 VersionDebugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 VersionIan Barber
 
Reutov, yunusov, nagibin random numbers take ii
Reutov, yunusov, nagibin   random numbers take iiReutov, yunusov, nagibin   random numbers take ii
Reutov, yunusov, nagibin random numbers take iiDefconRussia
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaTony Fabeen
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scriptingTony Fabeen
 
More than syntax
More than syntaxMore than syntax
More than syntaxWooga
 
Making Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in MeteorMaking Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in Meteoryaliceme
 
ZeroMQ: Messaging Made Simple
ZeroMQ: Messaging Made SimpleZeroMQ: Messaging Made Simple
ZeroMQ: Messaging Made SimpleIan Barber
 
網路攻擊技術分析
網路攻擊技術分析網路攻擊技術分析
網路攻擊技術分析David Liao
 
Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015GregMefford
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsMarcus Frödin
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaAlexander Gyoshev
 
5 issues
5 issues5 issues
5 issuesm0use
 
SecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play FrameworkSecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play Frameworkjaliss
 
nescala 2013
nescala 2013nescala 2013
nescala 2013Hung Lin
 
Node.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterNode.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterSimen Li
 
Do snow.rwn
Do snow.rwnDo snow.rwn
Do snow.rwnARUN DN
 
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]RootedCON
 

Ähnlich wie strace for Perl Mongers (20)

Debugging: Rules & Tools
Debugging: Rules & ToolsDebugging: Rules & Tools
Debugging: Rules & Tools
 
Debugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 VersionDebugging: Rules And Tools - PHPTek 11 Version
Debugging: Rules And Tools - PHPTek 11 Version
 
Reutov, yunusov, nagibin random numbers take ii
Reutov, yunusov, nagibin   random numbers take iiReutov, yunusov, nagibin   random numbers take ii
Reutov, yunusov, nagibin random numbers take ii
 
Random numbers
Random numbersRandom numbers
Random numbers
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with Lua
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scripting
 
More than syntax
More than syntaxMore than syntax
More than syntax
 
Making Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in MeteorMaking Mongo realtime - oplog tailing in Meteor
Making Mongo realtime - oplog tailing in Meteor
 
ZeroMQ: Messaging Made Simple
ZeroMQ: Messaging Made SimpleZeroMQ: Messaging Made Simple
ZeroMQ: Messaging Made Simple
 
網路攻擊技術分析
網路攻擊技術分析網路攻擊技術分析
網路攻擊技術分析
 
Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015Grokking Grok: Monitorama PDX 2015
Grokking Grok: Monitorama PDX 2015
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
 
Building modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and javaBuilding modern web apps with html5, javascript, and java
Building modern web apps with html5, javascript, and java
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
 
5 issues
5 issues5 issues
5 issues
 
SecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play FrameworkSecureSocial - Authentication for Play Framework
SecureSocial - Authentication for Play Framework
 
nescala 2013
nescala 2013nescala 2013
nescala 2013
 
Node.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterNode.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitter
 
Do snow.rwn
Do snow.rwnDo snow.rwn
Do snow.rwn
 
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
Jose Selvi - Side-Channels Uncovered [rootedvlc2018]
 

Kürzlich hochgeladen

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

strace for Perl Mongers