Varnish is an HTTP accelerator that acts as a reverse proxy and cache. It is very fast due to being open source and outsourcing tasks to kernel functions. It relies on a massively multithreaded architecture that is partly event driven. It maps the cache store into memory using mmap and writes directly from mapped memory for maximum performance. Logging includes all request headers. Wikia uses Varnish across 4 datacenters with rapid cache invalidations and a RabbitMQ queue to handle invalidations. SSDs and tuning help optimize performance.
This document summarizes a presentation about the WiredTiger In-Memory storage engine for MongoDB compared to the standard WiredTiger B-Tree storage engine. The Percona Memory Engine can provide up to 1000 times faster performance for OLTP workloads and 10 times faster reads compared to WiredTiger by storing data entirely in memory instead of on disk. It uses WiredTiger's document-level locking and B-Tree structure but without disk access. Typical use cases for the in-memory engine include caching, session storage, and temporary collections. The presentation provides examples of how to configure and optimize the engine for different scenarios including replica sets, sharded clusters, and combining it with WiredTiger for persistence.
Varnish is an HTTP proxy and cache designed for high-performance web applications. It has a key-value store architecture and is written in C for performance. Varnish uses Varnish Configuration Language (VCL) scripts to control caching and backend configuration. It has a multithreaded design with worker processes that handle client connections and caching of responses from backend servers. Administrators can use tools like varnishstat, varnishlog, and varnishadm to monitor caches, view logs, and control the Varnish instance.
It goes without saying that DNS is only as secure as its servers. To ensure the successful and secure operation of a DNS server, secure configuration is paramount. The new BIND 9 version 9.11 is a major version of the popular DNS server, released in August by ISC. In this webinar Mr. Carsten Strotmann will demonstrate new features such as: - Catalog Zones, - dnssec-keymgr, new *rndc* functions - CDS/CDNSKEY auto generation - Negative Trust Anchor - DNS cookies -Refuse “any” -and more.
This document discusses network considerations for Real Application Clusters (RAC). It describes the different network types used, including public, private, storage, and backup networks. It discusses protocols like TCP and UDP used for different traffic. It also covers concepts like network architecture, layers, MTU, jumbo frames, and tools for monitoring network performance like netstat, ping, and traceroute.
How we use Varnish at Opera Software, from the beginning (2009) to now. Presentation hold for the 5th Varnish Users Group meeting (VUG5) held in Paris on March 22nd 2012.
This is not a full Varnish 4 presentation. Only the most “wow” features and “must-know” differences from Varnish 3. ...and some random cool stuff.
This document provides guidance on deploying and upgrading a MongoDB sharded cluster. It discusses the components of a sharded cluster including config servers, shards, and mongos processes. It recommends a production deployment has at least 3 config servers, 3 nodes per shard replica set, and multiple mongos instances. The document outlines steps for deploying each component, including initializing replica sets and adding shards. It also provides a checklist for upgrading between minor and major versions, such as changes to configuration options, deprecated operations, and connectivity changes.
We are all told that we must use bind variables rather than literals in our code, and then are left to deal with the problems this causes. This issue probably still causes more performance tuning problems than any other. This presentation discusses how Oracle has handled the optimisation of statements using bind variables from version 8i to the new features in Oracle 11g and highlights some issues that still exist in version 11g.
This document discusses different types of enqueue waits caused by locks in an Oracle database. It covers common lock names like TX, TM, and UL; lock modes like exclusive and share; and how to identify the waiter, blocker, lock type, and object being blocked using views like v$lock, v$session, and v$active_session_history. The key pieces of information needed to resolve lock waits are the session ID of the waiter, the lock mode, and the object being blocked. User locks like TX and TM locks result from transactions and table modifications, while internal locks govern objects like redo and reusable objects.
This is a tutorial I gave with my colleague Kenny Gryp at Percona Live 2016 in Santa Clara Percona XtraDB Cluster is a high availability and high scalability solution for MySQL clustering. Percona XtraDB Cluster integrates Percona Server with the Galera synchronous replication library in a single product package, which enables you to create a cost-effective MySQL cluster. For three years at Percona Live, we've introduced people to this technology... but what's next? This tutorial continues your education, and targets users that already have experience with Percona XtraDB Cluster and want to go further. This tutorial will cover the following topics: - Bootstrapping in details - certification errors, understanding and preventing them - Replication failures, how to deal with them - Secrets of Galera Cache - Mastering flow control - Understanding and verifying replication throughput - How to use WAN replication - Implications of consistent reads - Backups - Load balancers and proxy protocol
This document discusses integrating Neutron, Nova, and Designate for DNS resolution and configuration. It provides three use cases: 1) floating IPs are published with associated port DNS attributes, 2) floating IPs are published directly in an external DNS service, and 3) ports are published directly in an external DNS service. It also covers configuring Neutron's internal DNS resolution, integrating with an external DNS service like Designate, and potential performance impacts of publishing ports directly to external DNS.
The document describes the author's experience deploying and configuring Varnish caching at Opera over many years. Some key points discussed include: - Initial deployment in 2009 caching static assets for My Opera, which grew to serve 15% of requests - Troubleshooting issues like session mixing and unauthorized access - Implementing caching for dynamic pages like the front page while respecting cookies and languages - Decentralizing caching to multiple data centers for lower latency globally - Generating and caching thumbnails on-the-fly to handle frequent design changes - Developing a more generic "shields-up" configuration to cache unpopular content securely - Ongoing work caching APIs and content on other
In this session, the following topics have been discussed: code snippets that can generate memory leak, thread leak, CPU spike, unresponsiveness, BLOCKED threads, Deadlocks, Heavy I/O activity. If you can understand what triggers these problems, diagnosing and solving them might become easier.
This document discusses a performance issue where a database experienced high CPU usage in the kernel mode. Tracing tools identified that detaching from multiple shared memory segments during connection release was causing the high CPU. The database server had a NUMA architecture, causing the database instance to create multiple shared memory segments across NUMA nodes. Increasing the shared memory size limit did not resolve it, as the instance was optimizing for NUMA.
This workshop was given in Vancouver B.C. in May 2015 at the OpenStack Summit In this interactive workshop, the Designate team will walk attendees through the installation and configuration of Designate on a virtual machine. Attendees will leave with an understanding of the various components of Designate, including the new services such as the MiniDNS and Pool Manager, and with a working single-VM install on their laptops. Attendees will learn: Designate Architecture 101 How to Install and Configure Designate How to perform day to day Designate operations tasks End user usage of the API, CLI and Horizon UI Tips and Tricks for using Designate Contributing to Designate 101