Ever wondered how your Java application is actually working? How it's making use of scarce resources on your machine? Ever tried to look under the hood of the Java Virtual Machine (JVM) and felt lost with various tools that don't provide an overall picture, only local details? Thermostat is an open source serviceability tool to help Java developers understand what's happening inside the JVM when their programs are running. Thermostat collects and combines information from various sources—including the Hotspot JVM—to present a complete picture of how the application is behaving. In this session, you'll get a chance to see Thermostat in action as it's used to examine various Java applications, identify what's wrong and fix those problems—often without even modifying the application code. You'll also learn how to add more features to Thermostat through plug-ins. If you're a developer, sysadmin, or QA, and if there's Java in your technology stack, you'll want to learn how Thermostat can make your life easier.
This talk was delivered on FOSDEM PGDay 2016, on 29th of January. It discusses the options to stream consistent snapshot of the data existing in a database prior to creating a logical replication slot.
Slides used for an internal training. This explains how to generate Flame Graphs using Java Flight Recorder dumps. There is also an example to use Linux "perf_events" to generate a Java Mixed-Mode Flame Graph.
Introduction to Gatling performance testing tool and how we used it for testing Zonky's REST API. Example of running distributed performance tests in AWS Fargate with real-time monitoring with Logstash/ElasticSearch/Kibana stack.
Red Hat Software Collections, OpenShift and the Red Hat Container Development Kit open up many new possibilities for Python developers targeting Red Hat Enterprise Linux. At the same time, the wider Python ecosystem is undergoing two significant transitions - one being the ongoing migration from Python 2 to Python 3, and the other the shift to correctly validating HTTPS connections by default. In this session we will cover the currently available options for developing with Python on Red Hat platforms, as well as provide some insight into where things are headed in the context of the wider Python ecosystem.
Guest lecture at Informatics Institute of Technology (IIT) on 24th November 2018 Covers following topics: Concurrency Processes and Threads Concurrent vs Parallel Programming Preemptive multitasking Context Switches Java Threads Thread Dumps Java Troubleshooting, Profiling, Monitoring and Management Tools Synchronization Thread Interference Memory Consistency Errors Synchronized Methods Intrinsic Locks and Synchronization Atomic Access Liveness Deadlock Starvation Livelock Flame Graphs
This document summarizes benchmarking results that compare the performance and power efficiency of Android's schedutil CPU scheduler against the existing ondemand and interactive schedulers. Tests were conducted on a Hikey development board using various workloads before and after applying the Energy Aware Scheduling patches. While schedutil showed competitive performance in many tests, some regressions were observed in user experience metrics like recent app switching and gallery scrolling, as well as higher energy usage when combined with the EAS patches, indicating areas for further optimization.
This document discusses Patroni, an open-source tool for managing high availability PostgreSQL clusters. It describes how Patroni uses a distributed configuration system like Etcd or Zookeeper to provide automated failover for PostgreSQL databases. Key features of Patroni include manual and scheduled failover, synchronous replication, dynamic configuration updates, and integration with backup tools like WAL-E. The document also covers some of the challenges of building automatic failover systems and how Patroni addresses issues like choosing a new master node and reattaching failed nodes.
Why should you have gdb (and --debuginfo) installed on your production MySQL servers and what DBA can do with gdb...
Kafka monitoring and metrics With Docker, Grafana, Prometheus, JMX and JConsole By Touraj Ebrahimi Senior Java Developer and Java Architect github: toraj58 bitbucket: toraj58 twitter: @toraj58 https://www.youtube.com/channel/UCcLcw6sTk_8G6EgfBr0E5uA
The presentation covers the the basics of performance optimizations for real-world Java code. It starts with a theoretical overview of the concepts followed by several live demos showing how performance bottlenecks can be diagnosed and eliminated. The demos include some non-trivial multi-threaded examples inspired by real-world applications.
LAS16-101: Efficient kernel backporting Speakers: Alex Shi Date: September 26, 2016 ★ Session Description ★ In computer/mobile product world, due to the stability, project timeline, etc considerations, latest upstream kernel isn’t their preference. The long term stable kernel is. But if you want to some of the latest features which only is in upstream kernel,you will have to backport them to old stable kernel. This presentation will share the kernel feature backport experience with audience, help them understand how to do backports quickly and effectively without detailed knowledge of the target feature, thus giving more flexibility and Improving productivity when making products. We will use some examples, to discuss how to get info from backport request, how to find necessary commits, how to get dependency, how to resolve conflicts, and finally how to test it. ★ Resources ★ Etherpad: pad.linaro.org/p/las16-101 Presentations & Videos: http://connect.linaro.org/resource/las16/las16-101/ ★ Event Details ★ Linaro Connect Las Vegas 2016 – #LAS16 September 26-30, 2016 http://www.linaro.org http://connect.linaro.org
JCache has some shortcomings for caching implementations: 1) It lacks support for asynchronous and transactional features that modern caches require. 2) The basic semantics of storing values are not well-defined, leading to unnecessary copying of values between caches and applications. 3) Some methods like remove() and getAll() have behaviors that do not match common expectations for maps and irritate users. 4) Details of expiration policies are also not clearly specified, making it difficult for caches to implement time-based expiration consistently.
This document introduces Java profiling and the YourKit Java Profiler tool. It discusses how profiling can be used to measure and locate performance bottlenecks, memory leaks, and unnecessary memory allocation. The YourKit Java Profiler is presented as a commercial tool that offers on-demand CPU, memory, and concurrency profiling along with IDE integration and support for various Java versions and operating systems. A demonstration of the tool is provided.
cache2k is one of the best performing Java in memory cache solution available today. The talk details about the internal design and latest research on the used low overhead eviction algorithm. At the end benchmarks are presented comparing the speed of different cache solutions including EHCache, Infinispan and Google Guava.
Session ID: BUD17-218 Session Name: Scheduler Load tracking update and improvement - BUD17-218 Speaker: Vincent Guittot Track: Power Management ★ Session Summary ★ The Per Entity Load Tracking (PELT) is a key stone in tasks placement of the scheduler but suffers of some weakness when it’s not just bugs. During the last LPC, it has been decided to fix all pending issues of PELT before starting to consider another load tracking mechanism for scheduler and/or EAS. This session will show the improvement reached since the last connect and the LPC as well as the next ones. We will also looks at the RT class which lacks a good load tracking. --------------------------------------------------- ★ Resources ★ Event Page: http://connect.linaro.org/resource/bud17/bud17-218/ Presentation: https://www.slideshare.net/linaroorg/bud17218-scheduler-load-tracking-update-and-improvement Video: https://youtu.be/9mY_wZdwmq0 --------------------------------------------------- ★ Event Details ★ Linaro Connect Budapest 2017 (BUD17) 6-10 March 2017 Corinthia Hotel, Budapest, Erzsébet krt. 43-49, 1073 Hungary --------------------------------------------------- Keyword: Power-management, scheduler, PELT http://www.linaro.org http://connect.linaro.org --------------------------------------------------- Follow us on Social Media https://www.facebook.com/LinaroOrg https://twitter.com/linaroorg https://www.youtube.com/user/linaroorg?sub_confirmation=1 https://www.linkedin.com/company/1026961
This document discusses dynamically tracing C code using runtime execution logs. It provides tips for building the environment, using the menuconfig system, makefiles, toolchains and runtime tracing with Qemu logs and Linux ftrace. Ftrace in particular allows tracing kernel functions and call graphs to help understand code flow and task relationships when statically tracing C/C++ sources proves difficult due to macros and configurations.
Varnish is an open-source reverse proxy and cache that is commonly used to accelerate dynamic websites. It uses a virtual memory backend and multi-threaded worker model to achieve high performance. Varnish has a configuration language called VCL that allows customizing caching and backend rules. Proper use of Varnish requires optimizing object caching, compression, purging, and operating system settings.
Presentation from Riga Dev Day talking about Lambda expressions and the Stream API in JDK8. This session, as the title suggests, goes beyond the basics and discusses some of the different ways you need to think to use a functional style of programming in Java.
The document provides an overview of 7 must-try user experience tactics for developers: 1) use user stories to understand user needs, 2) sketch designs to explore options before coding, 3) map user flows to optimize tasks, 4) move away from data tables to reduce overload, 5) use whitespace for readability and prioritization, 6) conduct guerrilla testing of 10 minutes to save re-coding, and 7) gather user feedback through the live experience and provide support tools. The document includes examples and explanations for each tactic.
DevOps is primarily about culture, not tools. It aims to break down barriers between development and operations teams through continuous improvement. While tools are important, they don't define DevOps or ensure its goals are met. True DevOps requires cultural changes like empowering workers, eliminating fear, and prioritizing quality over metrics. It draws from philosophies like eliminating silos, constant learning, and taking responsibility for organizational change.
Based on a wide variety of surveys taken over recent years, many companies are transitioning to something that looks more like Agile than the processes they were using in previous years. However, that transition doesn’t necessarily mean implementations have been done respectfully of the Agile Manifesto and the principles behind it. In large part, industry trends seem to indicate that the sloganization of the word has done a significant disservice to the ideas that were originally founded in 2001. To add even more pain, most people seem to be entirely unaware of the core basis of Agile which is the idea to embrace change but inspect and adapt to that change. Are we lost as an industry? Is there anyway we can recover from this problem? In this session, attendees can expect to engage in a conversation about the rise of the Agile community, the negative and positive impact it has had on the industry, and how you individually can help your organizations and teams lower the risk of encountering the negative problems, and speed your way towards the positives. Topics will include: - The intentions behind agile - Ways you can rework or improve your not so great agile situation - Things you should avoid from the start.