<Insert Picture Here> How To Build Better Applications With Oracle Solaris DTrace
|
|
|
- Nathan Burke
- 10 years ago
- Views:
Transcription
1 1
2 <Insert Picture Here> How To Build Better Applications With Oracle Solaris DTrace Brendan Gregg Principal Software Engineer Jim Mauro Senior Principal Software Engineer
3 Agenda - Oracle Solaris Dynamic Tracing What is DTrace Using DTrace Application Analysis USDT Probes <Insert Picture Here> 3
4 What is DTrace? An observability and analysis tool /usr/sbin/dtrace + kernel stuff that instruments all software kernel, user-land applications using thousands of probes dynamic or static instrumentation points each providing data timestamps, process info, function arguments,... and the D language to process it powerful summaries, or just printf() 4
5 Where is DTrace? Oracle Solaris 10+, Oracle Solaris Express Mac OS X FreeBSD 7.1+ Not yet in Linux, but see: 5
6 What Is DTrace For? Troubleshooting performance problems Profile applications (and the kernel) Latency measurements Troubleshooting software bugs Proving what the problem is, and is not Measuring the magnitude of the problem Detailed observability Hardware resources CPU, disk I/O, network I/O Unmodified application software The entire software stack 6
7 The Entire Software Stack How did you analyze these? Dynamic Languages User Executable Libraries System Calls Kernel Hardware Java, JavaScript compiled code lib... man s 2 process/threads, resources, FS CPUs, NICs, HBAs 7
8 The Entire Software Stack It was possible, but difficult (e.g., Solaris): Dynamic Languages language-specific tools User Executable debuggers, truss, /proc Libraries truss, sotruss, apptrace System Calls Kernel Hardware truss lockstat, prex/tnf, mdb kstat, "stat" tools 8
9 The Entire Software Stack DTrace is all seeing Dynamic Languages DTrace visibility Yes (esp. with providers) User Executable Yes Libraries Yes System Calls Yes Kernel Yes Hardware Yes (to some extent) 9
10 The Entire Software Stack Seeing is Believing DTrace cookbook: 230+ scripts 270+ one-liners Shows entire software stack, by example Topics include: CPU, Memory, Disk, Network, SCSI, SATA, IDE, SAS, VFS, UFS, ZFS, HFS+, sockets, IP, TCP, UDP, ICMP, Ethernet, NFS, CIFS, HTTP, DNS, C, Java, JavaScript, Perl, PHP, Python, Ruby, Mysql, Kernel, Apps,... 10
11 A Quick Peek at DTrace # dtrace -n 'syscall:::entry /execname == "Xorg"/ ustack()] = count(); } dtrace: description 'syscall:::entry ' matched 233 probes ^C [...] setitimer libc.so.1`setitimer+0xa Xorg`WaitForSomething+0x526 Xorg`Dispatch+0x12d Xorg`main+0x681 Xorg`0x46ed8c 10 read libc.so.1` read+0xa Xorg`_XSERVTransSocketRead+0xf Xorg`ReadRequestFromClient+0x284 Xorg`Dispatch+0x7c4 Xorg`main+0x681 Xorg`0x46ed8c 14 11
12 DTrace Unified Observability Software analysis tools often constrain view. e.g.: Language specific Software stack layer specific Tied to a development framework Non-production use System analysis tools also constrain view: stat tools for resource utilization Procfs tools for process/thread views 12
13 DTrace Unified Observability DTrace can see all: Locate bugs, no matter where they are Locate latency, no matter where it is Connecting the dots: Show system activity in application context Correlate system resources to who and how they are used 13
14 DTrace Features Dynamic instrumentation Predicates Static instrumentation Unified interface Arbitrary-context kernel instrumentation Data integrity Arbitrary actions High-level control language Scalable data aggregation Speculative tracing Virtualized consumers 14
15 Agenda What is DTrace Using DTrace Application Analysis USDT Probes <Insert Picture Here> 15
16 DTrace Components (and terminology) Consumers DTrace user commands that call into the framework: dtrace(1m), lockstat(1), plockstat(1), intrstat(1) dtrace(1m) is for one-liners and scripting Probes A point of instrumentation and data generation User-defined actions can be executed when probes "fire" Providers Libraries of probes Static: io:::start, proc:::exec-success, perl*:::sub-entry, php*:::error, Dynamic: pid816:libc:strlen:entry, fbt:zfs:arc_read:entry, 16
17 D Program Structure probe,... /optional predicate/ { optional action;... } 17
18 D Script Example #!/usr/sbin/dtrace -s syscall::read:entry /execname == "java"/ fds[arg0].fi_pathname] = count(); } 18
19 D Command Line Example # dtrace n 'syscall::read:entry /execname == "java"/ fds[arg0].fi_pathname] = count(); }' 19
20 DTrace Probes (more terminology) Have a unique four-tuple name: provider:module:function:name provider module function name The DTrace provider that manages the probe kernel module or user library location kernel or user function location meaningful probe name fbt:zfs:zfs_read:entry io:::start ip:::send... 20
21 DTrace Probe Types Anchored Probes Instrument a specific location in code fbt:ufs:ufs_read:entry pid1234:libc:malloc:entry vminfo:::pgin perl*:::sub-entry Unanchored Probes Fire independently of code; eg, time-based profile:::profile-997hz cpc:::papi_l2_tcm-user
22 DTrace Provider Types (more terminology) Statically Defined Tracing (SDT) Static (hard-coded) kernel instrumentation Build meaningful and easy to use providers and probes io:::start proc:::exec-success User-land Statically Defined Tracing (USDT) Static (hard-coded) application instrumentation Build meaningful and easy to use providers and probes plockstat*:::mutex-acquire javascript*:::function-entry mysql*:::query-start 22
23 DTrace Provider Stability (essential terminology) Stable Providers The provider interface (probes & args) won't change Same across OS versions, different OSes Usually achieved with SDT or USDT instrumentation io:::start ruby*:::function-entry Unstable Providers May change between software and OS versions D scripts using these may only run in one location pid1234:a.out:do_record:entry fbt:zfs:arc_read:entry 23
24 DTrace Predicates User-defined conditional statements DTrace's if/then/else Evaluated when probes fire Data pruning at the source /execname == "httpd"/ /pid == 123/ /errno!= 0/ 24
25 DTrace Actions Action statements Grouped in a clause { } What to do when a probe fires Data to gather, timestamps for profiling, etc. printf("uid: %d", uid); self->delta = timestamp - self->start; ustack(); 25
26 The D Language Similar to C and awk(1) ANSI C operators: arithmetic, relational, logical, etc Built-in variables execname, pid, tid, uid, cpu, probefunc, curthread, User-defined variables Thread-local, clause-local, global ints, strings, arrays, associative arrays, etc Built-in functions printf(), stack(), ustack(), copyin(), copyinstr(), raise(),... Aggregations A new scaleable data type to summarize values 26
27 DTrace Aggregations New data type; assigned = aggfunc(arg); Scaleable maintained per-cpu and later combined Summarize data in powerful ways: count occurrences average, sum, min, max distribution plot (2-power) distribution plot (linear) count() avg() sum() min() max() quantize() lquantize() and, all of the above by one or more keys instant frequency count no perl/awk post = count(); 27
28 Agenda What is DTrace Using DTrace Application Analysis USDT Probes <Insert Picture Here> 28
29 Applications Analysis With DTrace 29
30 Observing and Profiling Applications DTrace can observe unmodified applications Using DTrace providers such as: syscall which system calls are being executed profile/tick time based profiles sched scheduling activity pid dynamic probes in the user-land code vminfo, sysinfo kernel and virtual memory statistics proc process/thread events Or, you can modify your application and add custom DTrace providers (USDT) 30
31 Strategy for Using DTrace to Analyze Applications 1. Canned tools: System: vmstat(1m), iostat(1m) Process: prstat(1), top(1) DTrace: DTraceToolkit one-liners, scripts 2. Application familiarization: functional diagrams: targets for DTrace existing logs and statistics: take further with DTrace get/write load generation tools: sanity test DTrace scripts 3. DTrace programs: check for application USDT providers system calls system resources: CPU, disk, net/sockets, memory 4. Application internals: USDT language provider, if available: perl, python, java pid provider 31
32 Strategy Examples: 1. Canned Tools System tools; eg, vmstat(1m) solaris# vmstat 1 kthr memory r b w swap free re mf [...] page disk pi po fr de sr m1 m1 m1 m faults cpu in sy cs us sy id Memory looks ok (high free, no sr) High number of syscalls by who? which types? what args? any errors? and why? CPU load: user and system time who? what functions/modules? what codepaths? answer using DTrace 32
33 Strategy Examples: 1. Canned Tools... DTrace one-liner for syscalls by pid: solaris# dtrace -n 'syscall:::entry probefunc] = count(); }' dtrace: description 'syscall:::entry ' matched 236 probes ^C [...] 47 read llseek close fsat fstat doorfs getpid portfs read doorfs ioctl llseek ioctl
34 Strategy Examples: 2. Application Familiarization For example, a functional diagram such as: provides many targets for DTrace analysis 34
35 Strategy Examples: 3. DTrace Programs DEMO 35
36 Strategy Examples: 3. DTrace Programs Check for application USDT providers; eg, mysql: solaris# dtrace -n 'mysql*:::query-start = count(); }' dtrace: description 'mysql*:::query-start ' matched 1 probe ^C [...] SELECT /* MediaWikiBagOStuff::_doquery */ value,exptime FROM `objectcache` WHERE keyname='wikidb:messageslock' 4 SELECT /* MessageCache::loadFromDB */ page_title FROM `page` WHERE (page_len > 10000) AND page_is_redirect = '0' AND page_namespace = '8' 4 SELECT /* MessageCache::loadFromDB */ page_title,old_text, old_flags FROM `page`,`revision`,`text` WHERE page_is_redirect = '0' AND page_namespace = '8' AND (page_latest=rev_id) AND (rev_text_id=old_id) AND (page_len <= 10000) 4 SET /* Database::open */ sql_mode = '' 4 COMMIT 10 BEGIN 11 36
37 Strategy Examples: 3. DTrace Programs Examine syscalls; eg, by user-land stack: solaris# dtrace -n 'syscall::write*:entry /execname == "httpd"/ = count(); }' dtrace: description 'syscall::write*:entry ' matched 2 probes [...] libc.so.1` writev+0x7 libapr-1.so.0.3.9`apr_socket_sendv+0x8d httpd`writev_it_all+0x55 httpd`ap_core_output_filter+0x72f mod_ssl.so`bio_filter_out_flush+0xc3 mod_ssl.so`ssl_io_filter_output+0x281 httpd`ap_http_header_filter+0x7c8 httpd`ap_content_length_filter+0x1d3 mod_deflate.so`deflate_out_filter+0xaf3 httpd`end_output_stream+0x4e httpd`ap_process_request+0x93 httpd`ap_process_http_connection+0x5b httpd`ap_run_process_connection+0x28 httpd`child_main+0x3d8 httpd`make_child+0x86 httpd`ap_mpm_run+0x410 httpd`main+0x812 httpd`_start+0x7d 12 37
38 Strategy Examples: 3. DTrace Programs Examine resources; eg, CPU profiling: solaris# dtrace -n 'profile-101 /execname == "httpd"/ = count(); }' dtrace: description 'profile-101 ' matched 1 probe [...] libc.so.1` pollsys+0x7 libc.so.1`poll+0x4c libapr-1.so.0.3.9`apr_wait_for_io_or_timeout+0x9e libapr-1.so.0.3.9`apr_socket_recv+0x95 libaprutil-1.so.0.3.9`socket_bucket_read+0x5b 17 libc.so.1`memcpy+0x1b mod_php5.2.so`zend_do_push_object+0x2a mod_php5.2.so`zendparse+0x1292 mod_php5.2.so`compile_file+0x102 mod_php5.2.so`dtrace_compile_file+0x2e 19 38
39 Strategy Examples: 4. Application Internals DEMO 39
40 Strategy Examples: 4. Application Internals DTrace one-liner to count user-land functions: solaris# dtrace -n 'pid$target:mysqld::entry = count(); }' -p `pgrep -n mysqld` dtrace: description 'pid$target:mysqld::entry ' matched probes [...] handle_one_connection 1 [...] 1cJPROFILINGPstart_new_query6Mpkc_v_ 28 1cJPROFILINGUfinish_current_query6M_v_ 28 [...] 1cJItem_funcEtype6kM_nEItemEType 475 net_store_length 514 my_mb_wc_latin cJsql_alloc6FI_pv_ 534 my_strnncollsp_8bit_bin 549 1cEItemLused_tables6kM_X_ 565 my_strcasecmp_utf8 688 my_charset_same 976 ha_key_cmp 1094 alloc_root 1143 _mi_get_binary_pack_key 1210 my_wc_mb_latin my_utf8_uni
41 Strategy Examples: 4. Application Internals DTrace one-liner to trace user-land function flow: solaris# dtrace -Fn 'pid$target:mysqld::entry,pid$target:mysqld::return { trace(timestamp); }' -p `pgrep -n mysqld` dtrace: description 'pid$target:mysqld::entry,pid$target:mysqld::return ' matched probes CPU FUNCTION 4 <- os_thread_sleep > log_get_lsn > mutex_enter_func > os_fast_mutex_trylock <- os_fast_mutex_trylock <- mutex_enter_func > mutex_exit > os_fast_mutex_unlock <- os_fast_mutex_unlock <- mutex_exit <- log_get_lsn > ut_dulint_cmp <- ut_dulint_cmp > sync_arr_wake_threads_if_sema_free > os_mutex_enter [...] 41
42 Checklist for Using DTrace to Analyze Applications On-CPU Time High %CPU Determine where the time is being spent Off-CPU Time Typically sleeping, waiting for I/O (disk, network), waiting for locks, or waiting for a CPU Volume Hot function/code path Locks Spin and/or blocking on mutex or R/W locks Memory Allocation malloc (heap) management Errors User functions, libraries, system calls encountering errors that are not being handled properly, or very high error rates inducing poor performance 42
43 Agenda What is DTrace Using DTrace Application Analysis USDT Probes <Insert Picture Here> 43
44 DTrace Custom Probes in Applications User Statically Defined Tracing (USDT) probes Add custom probes to source code Non-enabled probe effect is still negligible (extra NOPs) Requires running instrumented binaries in production Abstract what the software does to meaningful probe names e.g. transaction-start, log-write, client-request, etc Determine what data should be made available to the probes Enhances application observability and debugging 44
45 Adding USDT Probes to Programs Adding USDT probes is easy Deciding what to add is hard Useful probes with intuitive names Necessary arguments And committing to the interface (if you want a stable provider) 45
46 USDT Provider and Probe Example Create a.d file with the provider and probes Optionally include stability level definitions For example, probes.d: provider world { probe loop(int); } #pragma D attributes Evolving/Evolving/Common provider world provider #pragma D attributes Private/Private/Common provider world module [ ] 46
47 Add USDT Probe To The Source File Original Source File DTrace USDT Probe Added #include <stdio.h> #include <unistd.h> #include <stdio.h> #include <unistd.h> #include <sys/sdt.h> int main(int ac, char **av) { } int i; for (i = 0; i < 5; i++) { printf( Hello World\n ); sleep(2); } int main(int ac, char **av) { } int i; for (i = 0; i < 5; i++) { DTRACE_PROBE1(world, loop, i); printf( Hello World\n ); sleep(2); } 47
48 USDT Compile the Code, Take it For a Spin solaris# cc -c helloworld.c solaris# dtrace -G -s probes.d helloworld.o solaris# cc -o helloworld -ldtrace probes.o helloworld.o solaris# dtrace -q -c./helloworld -n 'world$target:::loop { printf( %s:%s loop = %d\n, probemod, probefunc, arg0); }' helloworld:main loop = 0 Hello World helloworld:main loop = 1 Hello World helloworld:main loop = 2 Hello World helloworld:main loop = 3 Hello World helloworld:main loop = 4 48
49 USDT headergen -h option to dtrace(1) Generates header file with externs and macros PROVIDER_PROBE() macros instead of generic DTRACE_PROBEn() 49
50 USDT is-enabled USDT overhead is very low, but Setting up arguments can be expensive PROVIDER_ENABLED() macros introduced Conditional statement preceeds probe macro if (PROVIDER_PROBE_ENABLED()) } PROVIDER_PROBE(args, ); } is-enabled has slightly higher probe effect Use of is-enabled or not should be considered on a case-by-case basis If the cost of non is-enabed probes is high, use is-enabled 50
51 USDT is-enabled / headergen example Create the header file: solaris# dtrace -h -s probes.d Include the header file, conditional statement, and probe: #include #include #include #include <stdio.h> <unistd.h> <sys/sdt.h> "probes.h" int main(int ac, char **av) { } int i; for (i = 0; i < 5; i++) { if (WORLD_LOOP_ENABLED()) { /* Lots of stuff that takes time */ WORLD_LOOP(i); } printf( Hello World\n ); sleep(2); } 51
52 DTrace USDT Probes References, Examples
53 Summary DTrace enables observing, profiling and analyzing applications through dynamic and static instrumentation and use of available providers Every aspect of application behavior can be measured and understood DTrace USDT probes further enhance observability, enabling developers to instrument their code in meaningful and useful ways 53
54 DTrace Resources Websites: Books: DTrace Guide (see 1st URL) Solaris Performance and Tools: DTrace and MDB Techniques for Solaris 10 and OpenSolaris DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD (Dec 2010) 54
55 Question Time 55
56 56
57 57
58 Supplemental Example Slides 58
59 Using DTrace to measure read and write throughput ds2# cat rw.d #!/usr/sbin/dtrace -qs #pragma D option switchrate=333hz #pragma D option dynvarsize=4m syscall::read:entry, syscall::write:entry /pid == 1656/ { self->flag[probefunc] = 1; self->fs[probefunc] = fds[arg0].fi_fs; } syscall::read:return, syscall::write:return /arg0 > 0 && self->flag[probefunc]/ = sum(arg0); self->flag[probefunc] = 0; self->fs[probefunc] = 0; } tick-1sec { printf("%-8s %-12s %-12s\n","SYSCALL","FILE SYS","BYTES-PER-SEC"); printa("%-8s %-12s %-@12d\n",@bytes); trunc(@bytes); printf("\n\n"); } tick-10sec { exit(0); } 59
60 Running the rw.d Script ds2#./rw.d [...] SYSCALL read write write read write FILE SYS fifofs fifofs sockfs sockfs zfs BYTES-PER-SEC SYSCALL read write write read write FILE SYS fifofs fifofs sockfs sockfs zfs BYTES-PER-SEC [...] 60
61 Which ZFS file? ds2# cat zfs.d #!/usr/sbin/dtrace -qs #pragma D option switchrate=10hz #pragma D option dynvarsize=4m syscall::read:entry, syscall::write:entry /pid == 1656 && fds[arg0].fi_fs == "zfs"/ { self->flag[probefunc] = 1; self->file[probefunc] = fds[arg0].fi_pathname; } syscall::read:return, syscall::write:return /arg0 > 0 && self->flag[probefunc]/ = sum(arg0); self->flag[probefunc] = 0; self->file[probefunc] = 0; } tick-1sec { printf("%-8s %-32s %-12s\n","SYSCALL","ZFS FILE","BYTES-PER-SEC"); printa("%-8s %-32s %-@12d\n",@bytes); trunc(@bytes); printf("\n\n"); } tick-10sec { exit(0); } 61
62 Running zfs.d ds2#./zfs.d SYSCALL write ZFS FILE /logs/info/ds1-100/access BYTES-PER-SEC SYSCALL write ZFS FILE /logs/info/ds1-100/access BYTES-PER-SEC SYSCALL write ZFS FILE /logs/info/ds1-100/access BYTES-PER-SEC SYSCALL write ZFS FILE /logs/info/ds1-100/access BYTES-PER-SEC SYSCALL write ZFS FILE /logs/info/ds1-100/access BYTES-PER-SEC
63 Measuring ZFS file write latency ds2# cat zfst.d #!/usr/sbin/dtrace -qs #pragma D option switchrate=333hz #pragma D option dynvarsize=4m syscall::write:entry /pid == 1656 && fds[arg0].fi_fs == "zfs"/ { self->st = timestamp; } syscall::write:return /self->st/ = quantize(timestamp - self->st); self->st = 0; } tick-10sec { printa(@t); exit(0); } 63
64 Measuring ZFS file write latency ds2 #./zfst.d value Distribution count
65 Time-based user-mode profile ds2 # dtrace -qn 'profile-997hz /arg1 && pid == 1656/ = count(); } tick-10sec { trunc(@,20); printa(@); exit(0); }' libdb.so.5` bam_cmp libslapd.so.1`pl_hashtablerawlookup_const libslapd.so.1`slapi_attr_basetype libslapd.so.1`slapi_pblock_get libc.so.1`mutex_lock_impl libc.so.1`clear_lockbyte libdb.so.5` db_pthread_mutex_lock libslapd.so.1`value_done libslapd.so.1`attrlist_free libc.so.1`memset libc.so.1`fast_process_lock libdb.so.5` memp_fget libsmartheap_smp64.so`shi_test_and_clear libdb.so.5` env_alloc libdb.so.5` env_size_insert libsmartheap_smp64.so`shi_allocsmall2 libc.so.1`mutex_unlock libc.so.1`mutex_trylock libc.so.1`set_lock_byte64 libc.so.1`atomic_cas_
66 User stack trace for mutex_trylock() call ds2 # dtrace -qn 'pid1656:libc:mutex_trylock:entry = count(); }' [ ] libc.so.1`mutex_trylock libdb.so.5` db_pthread_mutex_lock+0x78 libdb.so.5` memp_alloc+0xa83 libdb.so.5` memp_fget+0x13dc libdb.so.5` bam_search+0xa86 libdb.so.5` bamc_search+0x6f2 libdb.so.5` bamc_get+0x146 libdb.so.5` dbc_get+0x4cf libdb.so.5` db_get+0xd2 libdb.so.5` db_get_pp+0x1d6 libback-ldbm.so`idl_fetch_one+0x79 libback-ldbm.so`idl_old_fetch+0x7e libback-ldbm.so`index_read_ext+0x326 libback-ldbm.so`index_read+0xf libback-ldbm.so`keys2idl+0xce libback-ldbm.so`ava_candidates+0x4cc libback-ldbm.so`filter_candidates+0x313 libback-ldbm.so`list_candidates+0x42e libback-ldbm.so`filter_candidates+0x178 libback-ldbm.so`subtree_candidates+0x
OS Observability Tools
OS Observability Tools Classic tools and their limitations DTrace (Solaris) SystemTAP (Linux) Slide 1 Where we're going with this... Know about OS observation tools See some examples how to use existing
DTrace. DTrace. Dynamic Tracing in Oracle Solaris, Brendan Gregg Jim Mauro Foreword by Bryan Cantrill. Mac OS X, and FreeBSD.
Spine width 1.3241 The Oracle Solaris DTrace feature revolutionizes the way you debug operating systems and applications. Using DTrace, you can dynamically instrument software and quickly answer virtually
Linux Tools for Monitoring and Performance. Khalid Baheyeldin November 2009 KWLUG http://2bits.com
Linux Tools for Monitoring and Performance Khalid Baheyeldin November 2009 KWLUG http://2bits.com Agenda Introduction Definitions Tools, with demos Focus on command line, servers, web Exclude GUI tools
Dtrace for Java Developers What Java developers should know about Dtrace
Dtrace for Java Developers What Java developers should know about Dtrace Jason Brazile and Stefan Tramm Netcetera 4260 DTrace: What and Why? 2 > What? It is a scriptable, unobtrusive, system observer with
Debugging Java performance problems. Ryan Matteson [email protected] http://prefetch.net
Debugging Java performance problems Ryan Matteson [email protected] http://prefetch.net Overview Tonight I am going to discuss Java performance, and how opensource tools can be used to debug performance
Using SmartOS as a Hypervisor
Using SmartOS as a Hypervisor SCALE 10x Robert Mustacchi [email protected] (@rmustacc) Software Engineer What is SmartOS? Solaris heritage Zones - OS level virtualization Crossbow - virtual NICs ZFS - pooled
Stop the Guessing. Performance Methodologies for Production Systems. Brendan Gregg. Lead Performance Engineer, Joyent. Wednesday, June 19, 13
Stop the Guessing Performance Methodologies for Production Systems Brendan Gregg Lead Performance Engineer, Joyent Audience This is for developers, support, DBAs, sysadmins When perf isn t your day job,
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Operating System Structures
COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating
Virtual Private Systems for FreeBSD
Virtual Private Systems for FreeBSD Klaus P. Ohrhallinger 06. June 2010 Abstract Virtual Private Systems for FreeBSD (VPS) is a novel virtualization implementation which is based on the operating system
Linux Kernel Networking. Raoul Rivas
Linux Kernel Networking Raoul Rivas Kernel vs Application Programming No memory protection Memory Protection We share memory with devices, scheduler Sometimes no preemption Can hog the CPU Segmentation
Help! My system is slow!
Help! My system is slow! Profiling tools, tips and tricks Kris Kennaway [email protected] Overview Goal: Present some tools for evaluating the workload of your FreeBSD system, and identifying the bottleneck(s)
W4118 Operating Systems. Junfeng Yang
W4118 Operating Systems Junfeng Yang Outline Linux overview Interrupt in Linux System call in Linux What is Linux A modern, open-source OS, based on UNIX standards 1991, 0.1 MLOC, single developer Linus
Laboratory Report. An Appendix to SELinux & grsecurity: A Side-by-Side Comparison of Mandatory Access Control & Access Control List Implementations
Laboratory Report An Appendix to SELinux & grsecurity: A Side-by-Side Comparison of Mandatory Access Control & Access Control List Implementations 1. Hardware Configuration We configured our testbed on
<Insert Picture Here> Tracing on Linux
Tracing on Linux Elena Zannoni ([email protected]) Linux Engineering, Oracle America November 6 2012 The Tree of Tracing SystemTap LTTng perf DTrace ftrace GDB TRACE_EVENT
Operating System Structure
Operating System Structure Lecture 3 Disclaimer: some slides are adopted from the book authors slides with permission Recap Computer architecture CPU, memory, disk, I/O devices Memory hierarchy Architectural
Host-based Intrusion Prevention on Windows and UNIX. Dr. Rich Murphey White Oak Labs
Host-based Intrusion Prevention on Windows and UNIX Dr. Rich Murphey White Oak Labs Acknowledgements Niels Provos OpenBSD s systrace DT suggested this thread last year Greg Hoglund insights md5 at da ghettohackers
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Project Adding a System Call to the Linux Kernel
74 Chapter 2 Operating-System Structures 2.15 Why is a just-in-time compiler useful for executing Java programs? 2.16 What is the relationship between a guest operating system and a host operating system
DTRACE BACKGROUND. What Is DTrace?
What Is DTrace? DTRACE BACKGROUND *Dtrace was created by Sun Microsystems, Inc. and released under the Common Development and Distribution License (CDDL), a free software license based on the Mozilla Public
When Node.js goes wrong: Debugging Node in production. Surge 2012 David Pacheco (@dapsays) Joyent
When Node.js goes wrong: Debugging Node in production Surge 2012 David Pacheco (@dapsays) Joyent The Rise of Node.js We see Node.js as the confluence of three ideas: JavaScript s friendliness and rich
CSC230 Getting Starting in C. Tyler Bletsch
CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly
Datacenter Operating Systems
Datacenter Operating Systems CSE451 Simon Peter With thanks to Timothy Roscoe (ETH Zurich) Autumn 2015 This Lecture What s a datacenter Why datacenters Types of datacenters Hyperscale datacenters Major
How to analyse your system to optimise performance and throughput in IIBv9
How to analyse your system to optimise performance and throughput in IIBv9 Dave Gorman [email protected] 2013 IBM Corporation Overview The purpose of this presentation is to demonstrate how to find the
DTrace: The Reverse Engineer s Unexpected Swiss Army Knife
DTrace: The Reverse Engineer s Unexpected Swiss Army Knife Tiller Beauchamp David Weston Science Applications International Corporation {Tiller.L.Beauchamp,[email protected] Abstract This paper will
Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.
Agenda Enterprise Performance Factors Overall Enterprise Performance Factors Best Practice for generic Enterprise Best Practice for 3-tiers Enterprise Hardware Load Balancer Basic Unix Tuning Performance
Lesson 06: Basics of Software Development (W02D2
Lesson 06: Basics of Software Development (W02D2) Balboa High School Michael Ferraro Lesson 06: Basics of Software Development (W02D2 Do Now 1. What is the main reason why flash
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
Unix::Statgrab - System Monitoring
Unix::Statgrab - System Monitoring Jens Rehsack 2013 Jens Rehsack () Unix::Statgrab - System Monitoring 2013 1 / 28 Overview Part I Introduction 1 Introduction Jens Rehsack () Unix::Statgrab - System Monitoring
11.1 inspectit. 11.1. inspectit
11.1. inspectit Figure 11.1. Overview on the inspectit components [Siegl and Bouillet 2011] 11.1 inspectit The inspectit monitoring tool (website: http://www.inspectit.eu/) has been developed by NovaTec.
Storage benchmarking cookbook
Storage benchmarking cookbook How to perform solid storage performance measurements Stijn Eeckhaut Stijn De Smet, Brecht Vermeulen, Piet Demeester The situation today: storage systems can be very complex
CS423 Spring 2015 MP4: Dynamic Load Balancer Due April 27 th at 9:00 am 2015
CS423 Spring 2015 MP4: Dynamic Load Balancer Due April 27 th at 9:00 am 2015 1. Goals and Overview 1. In this MP you will design a Dynamic Load Balancer architecture for a Distributed System 2. You will
Oracle Solaris: Aktueller Stand und Ausblick
Oracle Solaris: Aktueller Stand und Ausblick Detlef Drewanz Principal Sales Consultant, EMEA Server Presales The following is intended to outline our general product direction. It
PHP on IBM i: What s New with Zend Server 5 for IBM i
PHP on IBM i: What s New with Zend Server 5 for IBM i Mike Pavlak Solutions Consultant [email protected] (815) 722 3454 Function Junction Audience Used PHP in Zend Core/Platform New to Zend PHP Looking to
Perf Tool: Performance Analysis Tool for Linux
/ Notes on Linux perf tool Intended audience: Those who would like to learn more about Linux perf performance analysis and profiling tool. Used: CPE 631 Advanced Computer Systems and Architectures CPE
PERFORMANCE TUNING ORACLE RAC ON LINUX
PERFORMANCE TUNING ORACLE RAC ON LINUX By: Edward Whalen Performance Tuning Corporation INTRODUCTION Performance tuning is an integral part of the maintenance and administration of the Oracle database
CS 253: Intro to Systems Programming
CS 253: Intro to Systems Programming Spring 2014 Amit Jain, Shane Panter, Marissa Schmidt Department of Computer Science College of Engineering Boise State University Logistics Instructor: Amit Jain http://cs.boisestate.edu/~amit
Achieving High Throughput. Fernando Castano [email protected] Sun Microsystems
Achieving High Throughput and Scalability with JRuby Fernando Castano [email protected] Sun Microsystems Agenda What is Project Kenai Early tests and re-architecture How, where and what we benchmark
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
Using EDA Databases: Milkyway & OpenAccess
Using EDA Databases: Milkyway & OpenAccess Enabling and Using Scripting Languages with Milkyway and OpenAccess Don Amundson Khosro Khakzadi 2006 LSI Logic Corporation 1 Outline History Choice Of Scripting
REDEFINING THE ENTERPRISE OS RED HAT ENTERPRISE LINUX 7
REDEFINING THE ENTERPRISE OS RED HAT ENTERPRISE LINUX 7 Rodrigo Freire Sr. Technical Account Manager May 2014 1 Roadmap At A Glance CY2010 CY2011 CY2012 CY2013 CY2014.0 RHEL 7 RHEL 5 Production 1.1.0 RHEL
High Availability Solutions for the MariaDB and MySQL Database
High Availability Solutions for the MariaDB and MySQL Database 1 Introduction This paper introduces recommendations and some of the solutions used to create an availability or high availability environment
Instructor: Betty O Neil
Introduction to Web Application Development, for CS437/637 Instructor: Betty O Neil 1 Introduction: Internet vs. World Wide Web Internet is an interconnected network of thousands of networks and millions
Stateful Inspection Technology
Stateful Inspection Technology Security Requirements TECH NOTE In order to provide robust security, a firewall must track and control the flow of communication passing through it. To reach control decisions
Apache Tomcat. Load-balancing and Clustering. Mark Thomas, 20 November 2014. 2014 Pivotal Software, Inc. All rights reserved.
2 Apache Tomcat Load-balancing and Clustering Mark Thomas, 20 November 2014 Introduction Apache Tomcat committer since December 2003 [email protected] Tomcat 8 release manager Member of the Servlet, WebSocket
Microkernels, virtualization, exokernels. Tutorial 1 CSC469
Microkernels, virtualization, exokernels Tutorial 1 CSC469 Monolithic kernel vs Microkernel Monolithic OS kernel Application VFS System call User mode What was the main idea? What were the problems? IPC,
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition
10 STEPS TO YOUR FIRST QNX PROGRAM QUICKSTART GUIDE Second Edition QNX QUICKSTART GUIDE A guide to help you install and configure the QNX Momentics tools and the QNX Neutrino operating system, so you can
Open Solaris y Postgresql?
Open Solaris y Postgresql? Por lo menos, tenés que escucharlos... Emanuel Calvo Franco @ AOSUG Postgresql y Solaris conforman una plataforma de bajo costo para escenarios críticos de mediana a gran escala.
Building a Real-Time Cloud Analytics Service with Node.js
Building a Real-Time Cloud Analytics Service with Node.js Surge 2011 David Pacheco (@dapsays) Bryan Cantrill (@bcantrill) Last year at #surgecon... Last year, we described the emergence of real-time data
Web Application s Performance Testing
Web Application s Performance Testing B. Election Reddy (07305054) Guided by N. L. Sarda April 13, 2008 1 Contents 1 Introduction 4 2 Objectives 4 3 Performance Indicators 5 4 Types of Performance Testing
CS3600 SYSTEMS AND NETWORKS
CS3600 SYSTEMS AND NETWORKS NORTHEASTERN UNIVERSITY Lecture 2: Operating System Structures Prof. Alan Mislove ([email protected]) Operating System Services Operating systems provide an environment for
Network Attached Storage. Jinfeng Yang Oct/19/2015
Network Attached Storage Jinfeng Yang Oct/19/2015 Outline Part A 1. What is the Network Attached Storage (NAS)? 2. What are the applications of NAS? 3. The benefits of NAS. 4. NAS s performance (Reliability
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
ZABBIX. An Enterprise-Class Open Source Distributed Monitoring Solution. Takanori Suzuki MIRACLE LINUX CORPORATION October 22, 2009
ZABBIX An Enterprise-Class Open Source Distributed Monitoring Solution Takanori Suzuki MIRACLE LINUX CORPORATION October 22, 2009 Outline Biography ZABBIX New release ZABBIX 1.8 Activity in Japan Biography
Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney
Frysk The Systems Monitoring and Debugging Tool Andrew Cagney Agenda Two Use Cases Motivation Comparison with Existing Free Technologies The Frysk Architecture and GUI Command Line Utilities Current Status
File System & Device Drive. Overview of Mass Storage Structure. Moving head Disk Mechanism. HDD Pictures 11/13/2014. CS341: Operating System
CS341: Operating System Lect 36: 1 st Nov 2014 Dr. A. Sahu Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati File System & Device Drive Mass Storage Disk Structure Disk Arm Scheduling RAID
ZFS Backup Platform. ZFS Backup Platform. Senior Systems Analyst TalkTalk Group. http://milek.blogspot.com. Robert Milkowski.
ZFS Backup Platform Senior Systems Analyst TalkTalk Group http://milek.blogspot.com The Problem Needed to add 100's new clients to backup But already run out of client licenses No spare capacity left (tapes,
COS 318: Operating Systems
COS 318: Operating Systems OS Structures and System Calls Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Outline Protection mechanisms
Introduction to Passive Network Traffic Monitoring
Introduction to Passive Network Traffic Monitoring CS459 ~ Internet Measurements Spring 2015 Despoina Antonakaki [email protected] Active Monitoring Inject test packets into the network or send packets
VI Performance Monitoring
VI Performance Monitoring Preetham Gopalaswamy Group Product Manager Ravi Soundararajan Staff Engineer September 15, 2008 Agenda Introduction to performance monitoring in VI Common customer/partner questions
Multi-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Virtualization Technologies ORACLE TECHNICAL WHITE PAPER OCTOBER 2015
Virtualization Technologies ORACLE TECHNICAL WHITE PAPER OCTOBER 2015 Table of Contents Introduction 3 Designing a Consolidated Infrastructure 6 Seven Areas of Consideration for Consolidation 6 Security
Survey of Filesystems for Embedded Linux. Presented by Gene Sally CELF
Survey of Filesystems for Embedded Linux Presented by Gene Sally CELF Presentation Filesystems In Summary What is a filesystem Kernel and User space filesystems Picking a root filesystem Filesystem Round-up
These sub-systems are all highly dependent on each other. Any one of them with high utilization can easily cause problems in the other.
Abstract: The purpose of this document is to describe how to monitor Linux operating systems for performance. This paper examines how to interpret common Linux performance tool output. After collecting
NexentaStor Enterprise Backend for CLOUD. Marek Lubinski Marek Lubinski Sr VMware/Storage Engineer, LeaseWeb B.V.
NexentaStor Enterprise Backend for CLOUD Marek Lubinski Marek Lubinski Sr VMware/Storage Engineer, LeaseWeb B.V. AGENDA LeaseWeb overview Express Cloud platform Initial storage build Why NexentaStor NexentaStor
20 Command Line Tools to Monitor Linux Performance
20 Command Line Tools to Monitor Linux Performance 20 Command Line Tools to Monitor Linux Performance It s really very tough job for every System or Network administrator to monitor and debug Linux System
IBM Tivoli Monitoring Version 6.3 Fix Pack 2. Infrastructure Management Dashboards for Servers Reference
IBM Tivoli Monitoring Version 6.3 Fix Pack 2 Infrastructure Management Dashboards for Servers Reference IBM Tivoli Monitoring Version 6.3 Fix Pack 2 Infrastructure Management Dashboards for Servers Reference
Embedded Software Development
Linköpings Tekniska Högskola Institutionen för Datavetanskap (IDA), Software and Systems (SaS) TDDI11, Embedded Software 2010-04-22 Embedded Software Development Host and Target Machine Typical embedded
HPSA Agent Characterization
HPSA Agent Characterization Product HP Server Automation (SA) Functional Area Managed Server Agent Release 9.0 Page 1 HPSA Agent Characterization Quick Links High-Level Agent Characterization Summary...
Security Correlation Server Quick Installation Guide
orrelog Security Correlation Server Quick Installation Guide This guide provides brief information on how to install the CorreLog Server system on a Microsoft Windows platform. This information can also
xvm Server and xvm VirtualBox Christopher Beal Principal Engineer [email protected]
xvm Server and xvm VirtualBox Christopher Beal Principal Engineer [email protected] Open, Easy, Internet Scale Virtualize Everything, Manage Anywhere Open developer virtualization platform Enterprise-class
Android Programming and Security
Android Programming and Security Dependable and Secure Systems Andrea Saracino [email protected] Outlook (1) The Android Open Source Project Philosophy Players Outlook (2) Part I: Android System
Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition
Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System
Implementing the Hadoop Distributed File System Protocol on OneFS Jeff Hughes EMC Isilon
Implementing the Hadoop Distributed File System Protocol on OneFS Jeff Hughes EMC Isilon Outline Hadoop Overview OneFS Overview MapReduce + OneFS Details of isi_hdfs_d Wrap up & Questions 2 Hadoop Overview
The Benefits of Verio Virtual Private Servers (VPS) Verio Virtual Private Server (VPS) CONTENTS
Performance, Verio FreeBSD Virtual Control, Private Server and (VPS) Security: v3 CONTENTS Why outsource hosting?... 1 Some alternative approaches... 2 Linux VPS and FreeBSD VPS overview... 3 Verio VPS
VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D
ware and CPU Virtualization Technology Jack Lo Sr. Director, R&D This presentation may contain ware confidential information. Copyright 2005 ware, Inc. All rights reserved. All other marks and names mentioned
ios Application Development &
Introduction of ios Application Development & Swift Programming Language Presented by Chii Chang [email protected] Outlines Basic understanding about ios App Development Development environment: Xcode IDE Foundations
OpenShift on you own cloud. Troy Dawson OpenShift Engineer, Red Hat [email protected] November 1, 2013
OpenShift on you own cloud Troy Dawson OpenShift Engineer, Red Hat [email protected] November 1, 2013 2 Infrastructure-as-a-Service Servers in the Cloud You must build and manage everything (OS, App Servers,
NetScaler Logging Facilities
NetScaler Logging Facilities www.citrix.com Table of Contents Overview...3 SNMP Traps...3 SNMP Polling...3 Syslog and Audit Server...3 NetScaler Web Logging...4 Historical Reporting...5 Performance Record
Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM
Bern University of Applied Sciences Engineering and Information Technology Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM By Franz Meyer Version 1.0 February 2011 Virtualization Architecture
Network Probe User Guide
Network Probe User Guide Network Probe User Guide Table of Contents 1. Introduction...1 2. Installation...2 Windows installation...2 Linux installation...3 Mac installation...4 License key...5 Deployment...5
New Relic & JMeter - Perfect Performance Testing
TUTORIAL New Relic & JMeter - Perfect Performance Testing by David Sale Contents Introduction 3 Demo Application 4 Hooking Into New Relic 4 What Is JMeter? 6 Installation and Usage 6 Analysis In New Relic
Software. Programming Language. Software. Instructor Özgür ZEYDAN. Bülent Ecevit University Department of Environmental Engineering
Computer Bülent Ecevit University Department of Environmental Engineering Case & Inside units Hardware Peripherals Operating Systems Application : Instructions for the computer. A series of instructions
What s Cool in the SAP JVM (CON3243)
What s Cool in the SAP JVM (CON3243) Volker Simonis, SAP SE September, 2014 Public Agenda SAP JVM Supportability SAP JVM Profiler SAP JVM Debugger 2014 SAP SE. All rights reserved. Public 2 SAP JVM SAP
Storage Management. in a Hybrid SSD/HDD File system
Project 2 Storage Management Part 2 in a Hybrid SSD/HDD File system Part 1 746, Spring 2011, Greg Ganger and Garth Gibson 1 Project due on April 11 th (11.59 EST) Start early Milestone1: finish part 1
Taking Linux File and Storage Systems into the Future. Ric Wheeler Director Kernel File and Storage Team Red Hat, Incorporated
Taking Linux File and Storage Systems into the Future Ric Wheeler Director Kernel File and Storage Team Red Hat, Incorporated 1 Overview Going Bigger Going Faster Support for New Hardware Current Areas
FreeBSD Developer Summit TrustedBSD: Audit + priv(9)
FreeBSD Developer Summit TrustedBSD: Audit + priv(9) Robert Watson FreeBSD Project Computer Laboratory University of Cambridge TrustedBSD Audit Quick audit tutorial Adding audit support to new kernel features
Software changes for Website and Application IPv6 Readiness
Software changes for Website and Application IPv6 Readiness Ahmed Abu-Abed, P.Eng. Tamkien Systems [email protected] 1 Agenda Introduction Enabling Website IPv6 and Forum Certification Intro to Socket
