Cantitate/Preț
Produs

Understanding Software Dynamics

Autor Richard Sites
en Limba Engleză Paperback – 10 dec 2021

Considerăm că Understanding Software Dynamics reprezintă un ghid tehnic esențial pentru inginerii care se confruntă cu sisteme unde fiecare milisecundă contează. Un exercițiu central propus de Richard Sites este implementarea și utilizarea KUtrace, un instrument cu impact minim asupra resurselor (low-overhead), conceput să ofere o imagine granulară a modului în care codul interacționează cu nucleele procesorului în timp real. Această abordare practică permite trecerea de la simple presupuneri la o înțelegere bazată pe date a motivului pentru care un program „agață” sau are performanțe inconstante. Structura volumului este una progresivă și riguroasă. Prima parte se concentrează pe mecanismele de măsurare a componentelor hardware fundamentale — CPU, memorie, disk și rețea. Partea a doua și a treia fac trecerea către observabilitate, detaliind designul instrumentelor de tracing și patch-urile necesare în kernel-ul Linux pentru o monitorizare precisă. În final, secțiunea dedicată raționamentului învață cititorul cum să interpreteze anomaliile, precum execuția excesivă sau blocajele de resurse. Abordarea diferă de Systems Performance de Brendan Gregg prin faptul că este mai puțin axată pe instrumente de sistem generaliste și mai mult aplicabilă prin prisma dezvoltării propriilor unelte de tracing profund, adaptate la dinamica software-ului proprietar. De asemenea, spre deosebire de Fundamentals of Trace and Log Analysis, care pune accent pe limbajul de pattern-uri pentru jurnale, Richard Sites prioritizează interacțiunea hardware-software la nivel de instrucțiune și kernel. Recomandăm acest titlu pentru rigoarea cu care tratează sistemele Linux pe arhitecturi x86 și ARM, oferind soluții nuanțate care evită „forța brută” (cum ar fi dezactivarea cache-ului) în favoarea optimizării logice a execuției.

Citește tot Restrânge

Preț: 29636 lei

Preț vechi: 37045 lei
-20%

Puncte Express: 445

Carte disponibilă

Livrare economică 07-21 mai
Livrare express 23-29 aprilie pentru 4912 lei


Specificații

ISBN-13: 9780137589739
ISBN-10: 0137589735
Pagini: 464
Dimensiuni: 174 x 231 x 25 mm
Greutate: 0.86 kg
Editura: Pearson Education

De ce să citești această carte

Recomandăm această carte profesioniștilor care dezvoltă sisteme în timp real, de la jocuri video la aplicații cloud complexe. Veți câștiga o metodologie clară pentru a identifica rădăcina latențelor inexplicabile și veți învăța să construiți instrumente de diagnoză cu impact aproape zero asupra performanței sistemului. Este o investiție în capacitatea de a livra software fiabil, unde realitatea execuției hardware corespunde cu așteptările arhitecturale.


Despre autor

Richard Sites este un expert recunoscut în optimizarea performanței software, cu o carieră de câteva decenii în care a pionierat tehnici de analiză la nivel de procesor. Cu o experiență vastă în predarea cursurilor de nivel postuniversitar pentru dezvoltatori, Sites combină rigoarea academică cu expertiza practică dobândită în lucrul cu arhitecturi complexe precum x86 și ARM sub sisteme de operare Linux. Este creatorul instrumentului KUtrace, reflectând viziunea sa asupra necesității de a avea vizibilitate totală asupra dinamicii sistemelor moderne.


Descriere scurtă

Troubleshoot and Optimize Complex, Time-Constrained Software From mobile and cloud apps to video games to driverless vehicle control, more and more software is time-constrained: It must deliver reliable results seamlessly, consistently, and virtually instantaneously. If it doesn't, customers are unhappy--and sometimes lives are put at risk. When time-constrained software underperforms or fails, software professionals must quickly identify and address the root causes. This is difficult and, historically, few tools have been available to help. In Understanding Software Dynamics, performance expert Richard L. Sites tackles the problem head on, offering expert methods and advanced tools for understanding complex time-constrained software dynamics, improving reliability, and troubleshooting challenging performance problems. Sites draws on several decades of experience pioneering software performance optimization, as well as extensive experience teaching graduate-level developers. He introduces principles and techniques for use in any environment, from embedded devices to datacenters, illuminating them with examples based on x86 or ARM processors running Linux and linked by Ethernet. He also guides readers through building and applying a powerful, new, extremely low-overhead open-source software tool, KUtrace, to precisely trace executions on every CPU core. Using insights gleaned from this tool, readers can apply nuanced solutions--not merely brute-force techniques such as turning off caches or cores.
  • Measure and address issues associated with CPUs, memory, disk/SSD, networks, and their interactions
  • Fix programs that are always too slow, and those that sometimes lag for no apparent reason
  • Design useful observability, logging, and time-stamping capabilities into your code
  • Reason more effectively about performance data to see why reality differs from expectations
  • Identify problems such as excess execution, slow instruction execution, waiting for resources, and software locks

Understanding Software Dynamics will be valuable to experienced software professionals, including application and OS developers, hardware and system architects, real-time system designers, and game developers, as well as advanced students. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

Notă biografică

Richard L. Sites wrote his first computer program in 1959 and has spent most of his career at the boundary between hardware and software, with a particular interest in CPU/software performance interactions. His past work includes VAX microcode, DEC Alpha co-architect, and inventing the performance counters found in nearly all processors today. He has done low-overhead microcode and software tracing at DEC, Adobe, Google, and Tesla. Dr. Sites earned his PhD at Stanford in 1974; he holds 66 patents and is a member of the US National Academy of Engineering.

Cuprins

Foreword xix
Preface xxi
Acknowledgments xxv
About the Author xxvii

Part I: Measurement 1
Chapter 1: My Program Is Too Slow 3
Chapter 2: Measuring CPUs 15
Chapter 3: Measuring Memory 31
Chapter 4: CPU and Memory Interaction 49
Chapter 5: Measuring Disk/SSD 61
Chapter 6: Measuring Networks 85
Chapter 7: Disk and Network Database Interaction 111

Part II: Observation 131
Chapter 8: Logging 133
Chapter 9: Aggregate Measures 141
Chapter 10: Dashboards 157
Chapter 11: Other Existing Tools 167
Chapter 12: Traces 193
Chapter 13: Observation Tool Design Principles 209

Part III: Kernel-User Trace 217
Chapter 14: KUtrace: Goals, Design, Implementation 219
Chapter 15: KUtrace: Linux Kernel Patches 227
Chapter 16: KUtrace: Linux Loadable Module 239
Chapter 17: KUtrace: User-Mode Runtime Control 245
Chapter 18: KUtrace: Postprocessing 249
Chapter 19: KUtrace: Display of Software Dynamics 257

Part IV: Reasoning 267
Chapter 20: What to Look For 269
Chapter 21: Executing Too Much 271
Chapter 22: Executing Slowly 279
Chapter 23: Waiting for CPU 289
Chapter 24: Waiting for Memory 299
Chapter 25: Waiting for Disk 307
Chapter 26: Waiting for Network 319
Chapter 27: Waiting for Locks 337
Chapter 28: Waiting for Time 357
Chapter 29: Waiting for Queues 361
Chapter 30: Recap 383

Appendix A: Sample Servers 387
Appendix B: Trace Entries 391

Glossary 397
References 405
Index 415