Software Performance and Scalability

Software Performance and Scalability

Author: Henry H. Liu

Publisher: John Wiley & Sons

Published: 2011-09-20

Total Pages: 307

ISBN-13: 1118211316

DOWNLOAD EBOOK

Praise from the Reviewers: "The practicality of the subject in a real-world situation distinguishes this book from others available on the market." —Professor Behrouz Far, University of Calgary "This book could replace the computer organization texts now in use that every CS and CpE student must take. . . . It is much needed, well written, and thoughtful." —Professor Larry Bernstein, Stevens Institute of Technology A distinctive, educational text onsoftware performance and scalability This is the first book to take a quantitative approach to the subject of software performance and scalability. It brings together three unique perspectives to demonstrate how your products can be optimized and tuned for the best possible performance and scalability: The Basics—introduces the computer hardware and software architectures that predetermine the performance and scalability of a software product as well as the principles of measuring the performance and scalability of a software product Queuing Theory—helps you learn the performance laws and queuing models for interpreting the underlying physics behind software performance and scalability, supplemented with ready-to-apply techniques for improving the performance and scalability of a software system API Profiling—shows you how to design more efficient algorithms and achieve optimized performance and scalability, aided by adopting an API profiling framework (perfBasic) built on the concept of a performance map for drilling down performance root causes at the API level Software Performance and Scalability gives you a specialized skill set that will enable you to design and build performance into your products with immediate, measurable improvements. Complemented with real-world case studies, it is an indispensable resource for software developers, quality and performance assurance engineers, architects, and managers. It is anideal text for university courses related to computer and software performance evaluation and can also be used to supplement a course in computer organization or in queuing theory for upper-division and graduate computer science students.


Foundations of Software and System Performance Engineering

Foundations of Software and System Performance Engineering

Author: André B. Bondi

Publisher: Addison-Wesley Professional

Published: 2014-08-08

Total Pages: 447

ISBN-13: 0133038181

DOWNLOAD EBOOK

“If this book had been available to Healthcare.gov’s contractors, and they read and followed its life cycle performance processes, there would not have been the enormous problems apparent in that application. In my 40+ years of experience in building leading-edge products, poor performance is the single most frequent cause of the failure or cancellation of software-intensive projects. This book provides techniques and skills necessary to implement performance engineering at the beginning of a project and manage it throughout the product’s life cycle. I cannot recommend it highly enough.” –Don Shafer, CSDP, Technical Fellow, Athens Group, LLC Poor performance is a frequent cause of software project failure. Performance engineering can be extremely challenging. In Foundations of Software and System Performance Engineering, leading software performance expert Dr. André Bondi helps you create effective performance requirements up front, and then architect, develop, test, and deliver systems that meet them. Drawing on many years of experience at Siemens, AT&T Labs, Bell Laboratories, and two startups, Bondi offers practical guidance for every software stakeholder and development team participant. He shows you how to define and use metrics; plan for diverse workloads; evaluate scalability, capacity, and responsiveness; and test both individual components and entire systems. Throughout, Bondi helps you link performance engineering with everything else you do in the software life cycle, so you can achieve the right performance–now and in the future–at lower cost and with less pain. This guide will help you • Mitigate the business and engineering risk associated with poor system performance • Specify system performance requirements in business and engineering terms • Identify metrics for comparing performance requirements with actual performance • Verify the accuracy of measurements • Use simple mathematical models to make predictions, plan performance tests, and anticipate the impact of changes to the system or the load placed upon it • Avoid common performance and scalability mistakes • Clarify business and engineering needs to be satisfied by given levels of throughput and response time • Incorporate performance engineering into agile processes • Help stakeholders of a system make better performance-related decisions • Manage stakeholders’ expectations about system performance throughout the software life cycle, and deliver a software product with quality performance André B. Bondi is a senior staff engineer at Siemens Corp., Corporate Technologies in Princeton, New Jersey. His specialties include performance requirements, performance analysis, modeling, simulation, and testing. Bondi has applied his industrial and academic experience to the solution of performance issues in many problem domains. In addition to holding a doctorate in computer science and a master’s in statistics, he is a Certified Scrum Master.


Java Performance and Scalability

Java Performance and Scalability

Author: Dr Henry H Liu

Publisher: Perfmath

Published: 2012-07-01

Total Pages: 360

ISBN-13: 9780615669120

DOWNLOAD EBOOK

Written in Henry Liu's clear, concise style, Java Application Performance and Scalability gets right to the point. With clearly explained concepts, most pertinent theories, precise step-by-step procedures, and large volume of illustrative charts and tables with highly reliable data supporting behind, you gain quickly the necessary knowledge and skills for being able to cope with Java application performance and scalability issues without having to resort to more experienced professionals or expensive external consultants. Specifically, it helps you learn the following knowledge and skills that are essential for you to become more effective in contributing to the success of your organization:* What you need to know at minimum about the architecture of modern hardware so that you can make smart decisions on when you should pour your time on your application and when you can just throw in more advanced hardware to get by.* What you need to know about garbage collection theories in general and how they are implemented with widely used Java Virtual Machines like HotSpot JVMs.* Precise methodologies, procedures, and programs that you can start to use immediately to help you profile and tune your Java applications.* How you can design and build performance and scalability into your product proactively without having to face tough retrofitting decisions or even torrents of customer escalations later on.In addition, the book contains interesting data for your reference, associated with oops compression, CMS garbage collection tuning, DoEscapeAnalysis, G1 versus CMS comparison, etc., all based on full scale, rigorous performance and scalability tests with real products.


Designing Data-Intensive Applications

Designing Data-Intensive Applications

Author: Martin Kleppmann

Publisher: "O'Reilly Media, Inc."

Published: 2017-03-16

Total Pages: 658

ISBN-13: 1491903104

DOWNLOAD EBOOK

Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords? In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures


Production-Ready Microservices

Production-Ready Microservices

Author: Susan J. Fowler

Publisher: "O'Reilly Media, Inc."

Published: 2016-11-30

Total Pages: 172

ISBN-13: 1491965940

DOWNLOAD EBOOK

One of the biggest challenges for organizations that have adopted microservice architecture is the lack of architectural, operational, and organizational standardization. After splitting a monolithic application or building a microservice ecosystem from scratch, many engineers are left wondering what’s next. In this practical book, author Susan Fowler presents a set of microservice standards in depth, drawing from her experience standardizing over a thousand microservices at Uber. You’ll learn how to design microservices that are stable, reliable, scalable, fault tolerant, performant, monitored, documented, and prepared for any catastrophe. Explore production-readiness standards, including: Stability and Reliability: develop, deploy, introduce, and deprecate microservices; protect against dependency failures Scalability and Performance: learn essential components for achieving greater microservice efficiency Fault Tolerance and Catastrophe Preparedness: ensure availability by actively pushing microservices to fail in real time Monitoring: learn how to monitor, log, and display key metrics; establish alerting and on-call procedures Documentation and Understanding: mitigate tradeoffs that come with microservice adoption, including organizational sprawl and technical debt


The Art of Scalability

The Art of Scalability

Author: Martin L. Abbott

Publisher: Addison-Wesley Professional

Published: 2015-05-23

Total Pages: 1148

ISBN-13: 0134031385

DOWNLOAD EBOOK

The Comprehensive, Proven Approach to IT Scalability–Updated with New Strategies, Technologies, and Case Studies In The Art of Scalability, Second Edition, leading scalability consultants Martin L. Abbott and Michael T. Fisher cover everything you need to know to smoothly scale products and services for any requirement. This extensively revised edition reflects new technologies, strategies, and lessons, as well as new case studies from the authors’ pioneering consulting practice, AKF Partners. Writing for technical and nontechnical decision-makers, Abbott and Fisher cover everything that impacts scalability, including architecture, process, people, organization, and technology. Their insights and recommendations reflect more than thirty years of experience at companies ranging from eBay to Visa, and Salesforce.com to Apple. You’ll find updated strategies for structuring organizations to maximize agility and scalability, as well as new insights into the cloud (IaaS/PaaS) transition, NoSQL, DevOps, business metrics, and more. Using this guide’s tools and advice, you can systematically clear away obstacles to scalability–and achieve unprecedented IT and business performance. Coverage includes • Why scalability problems start with organizations and people, not technology, and what to do about it • Actionable lessons from real successes and failures • Staffing, structuring, and leading the agile, scalable organization • Scaling processes for hyper-growth environments • Architecting scalability: proprietary models for clarifying needs and making choices–including 15 key success principles • Emerging technologies and challenges: data cost, datacenter planning, cloud evolution, and customer-aligned monitoring • Measuring availability, capacity, load, and performance


Architecting High Performing, Scalable and Available Enterprise Web Applications

Architecting High Performing, Scalable and Available Enterprise Web Applications

Author: Shailesh Kumar Shivakumar

Publisher: Morgan Kaufmann

Published: 2014-10-29

Total Pages: 288

ISBN-13: 012802528X

DOWNLOAD EBOOK

Architecting High Performing, Scalable and Available Enterprise Web Applications provides in-depth insights into techniques for achieving desired scalability, availability and performance quality goals for enterprise web applications. The book provides an integrated 360-degree view of achieving and maintaining these attributes through practical, proven patterns, novel models, best practices, performance strategies, and continuous improvement methodologies and case studies. The author shares his years of experience in application security, enterprise application testing, caching techniques, production operations and maintenance, and efficient project management techniques. - Delivers holistic view of scalability, availability and security, caching, testing and project management - Includes patterns and frameworks that are illustrated with end-to-end case studies - Offers tips and troubleshooting methods for enterprise application testing, security, caching, production operations and project management - Exploration of synergies between techniques and methodologies to achieve end-to-end availability, scalability, performance and security quality attributes - 360-degree viewpoint approach for achieving overall quality - Practitioner viewpoint on proven patterns, techniques, methodologies, models and best practices - Bulleted summary and tabular representation of concepts for effective understanding - Production operations and troubleshooting tips


Building Scalable and High-performance Java Web Applications Using J2EE Technology

Building Scalable and High-performance Java Web Applications Using J2EE Technology

Author: Greg Barish

Publisher: Addison-Wesley Professional

Published: 2002

Total Pages: 405

ISBN-13: 0201729563

DOWNLOAD EBOOK

Scaling Java enterprise applications beyond just programming techniques--this is the next level. This volume covers all the technologies Java developers need to build scalable, high-performance Web applications. The book also covers servlet-based session management, EJB application logic, database design and integration, and more.


Performance Solutions

Performance Solutions

Author: Connie U. Smith

Publisher: Addison-Wesley Professional

Published: 2001

Total Pages: 0

ISBN-13: 9780201722291

DOWNLOAD EBOOK

Software development is replete with risks. Will the finished software run quickly enough? Will the underlying hardware and network infrastructure be sufficient? Will the system scale? You can now get the answers you need, up-front, in time to act. This book introduces Software Performance Engineering (SPE), a proven step-by-step methodology for predicting the development challenges and performance of any object-oriented system -- and for managing development to achieve performance objectives. Performance experts Connie Smith and Lloyd Williams show how to build quantitative models of software before it is built, analyzing performance based on proposed architecture and design. Learn how to elicit performance objectives, gather relevant data, and evaluate performance throughout development and the rest of the software lifecycle. For software engineers, developers, architects, analysts, performance specialists, project managers, and other IT professionals who want to deliver higher-performance object-oriented software systems.


Systems Performance

Systems Performance

Author: Brendan Gregg

Publisher: Pearson Education

Published: 2014

Total Pages: 777

ISBN-13: 0133390098

DOWNLOAD EBOOK

The Complete Guide to Optimizing Systems Performance Written by the winner of the 2013 LISA Award for Outstanding Achievement in System Administration Large-scale enterprise, cloud, and virtualized computing systems have introduced serious performance challenges. Now, internationally renowned performance expert Brendan Gregg has brought together proven methodologies, tools, and metrics for analyzing and tuning even the most complex environments. Systems Performance: Enterprise and the Cloud focuses on Linux(R) and Unix(R) performance, while illuminating performance issues that are relevant to all operating systems. You'll gain deep insight into how systems work and perform, and learn methodologies for analyzing and improving system and application performance. Gregg presents examples from bare-metal systems and virtualized cloud tenants running Linux-based Ubuntu(R), Fedora(R), CentOS, and the illumos-based Joyent(R) SmartOS(TM) and OmniTI OmniOS(R). He systematically covers modern systems performance, including the "traditional" analysis of CPUs, memory, disks, and networks, and new areas including cloud computing and dynamic tracing. This book also helps you identify and fix the "unknown unknowns" of complex performance: bottlenecks that emerge from elements and interactions you were not aware of. The text concludes with a detailed case study, showing how a real cloud customer issue was analyzed from start to finish. Coverage includes - Modern performance analysis and tuning: terminology, concepts, models, methods, and techniques - Dynamic tracing techniques and tools, including examples of DTrace, SystemTap, and perf - Kernel internals: uncovering what the OS is doing - Using system observability tools, interfaces, and frameworks - Understanding and monitoring application performance - Optimizing CPUs: processors, cores, hardware threads, caches, interconnects, and kernel scheduling - Memory optimization: virtual memory, paging, swapping, memory architectures, busses, address spaces, and allocators - File system I/O, including caching - Storage devices/controllers, disk I/O workloads, RAID, and kernel I/O - Network-related performance issues: protocols, sockets, interfaces, and physical connections - Performance implications of OS and hardware-based virtualization, and new issues encountered with cloud computing - Benchmarking: getting accurate results and avoiding common mistakes This guide is indispensable for anyone who operates enterprise or cloud environments: system, network, database, and web admins; developers; and other professionals. For students and others new to optimization, it also provides exercises reflecting Gregg's extensive instructional experience.