This document discusses using HAProxy as a load balancer and discusses its benefits and uses. It describes how HAProxy can be used to make non-highly available services highly available and provide load balancing. It also discusses ways to address potential single points of failure with HAProxy, such as using Corosync and Pacemaker to set up redundant HAProxy clusters. Upstream failures from slow databases or application servers are also addressed.
Chartbeat measures and monetizes attention on the web. They were experiencing slow load times and TCP retransmissions due to default system settings. Tuning various TCP, NGINX and EC2 ELB settings like increasing buffers, disabling Nagle's algorithm, and enabling HTTP keep-alive resolved the issues and improved performance. These included tuning settings like net.ipv4.tcp_max_syn_backlog, net.core.somaxconn, and nginx listen backlog values.
You’re ready to make your applications more responsive, scalable, fast and secure. Then it’s time to get started with NGINX. In this webinar, you will learn how to install NGINX from a package or from source onto a Linux host. We’ll then look at some common operating system tunings you could make to ensure your NGINX install is ready for prime time.
View full webinar on demand at http://nginx.com/resources/webinars/installing-tuning-nginx/
This document summarizes Linux TCP/IP tuning techniques for optimizing real-time communication. It discusses adjusting interrupts, transmission/receiving queues, socket buffer sizes, protocol parameters, port ranges, shell limits, packet marking, traffic control, connection tracking, and more. The goal is to configure these various network parameters together to ensure high availability, media quality with low delay, jitter and packet loss for signaling and media packets. Proper testing and measurement tools are also needed to validate any tuning changes.
These are the questions asked in the prelims round of Cybermania - a computer quiz held at Loyola School, Jamshedpur, India. The quiz was for students of standard 6 to 10.
If you have any doubts or further questions, contact the quizmaster at Twitter: @divyekapoor or on Google+ at http://gplus.to/divyekapoor
I'll be happy to share the slides with you if you ask me politely on any of these social networks. :)
These are the questions asked in the main round of Cybermania - a computer quiz held at Loyola School, Jamshedpur, India. The quiz was for students of standard 6 to 10.
If you have any doubts or further questions, contact the quizmaster at Twitter: @divyekapoor or on Google+ at http://gplus.to/divyekapoor
I'll be happy to share the slides with you if you ask me politely on any of these social networks. :)
Kernel Recipes 2015: The stable Linux Kernel Tree - 10 years of insanityAnne Nicolas
The Linux kernel gets a stable release about once every week.
This talk will go into the process of getting a patch accepted into the stable releases, how the release process works, and how Greg does a review and release cycle. It will consist of live examples of patches submitted to be added to the stable releases, as well as doing a release “live” on stage.
Greg KH, Linux Foundation
The document provides an overview of common Linux performance analysis tools including top, mpstat, ps, sar, and others. It discusses how these tools can be used to monitor CPU, memory, disk, network, and process-level performance metrics. Examples are given showing output from top displaying real-time process activity, mpstat showing CPU utilization breakdown, ps displaying currently running processes, and sar historical CPU utilization. The tools can help identify potential performance issues like high CPU usage, memory pressures, and disk or network bottlenecks.
A particle filter based scheme for indoor tracking on an Android SmartphoneDivye Kapoor
A particle filter based scheme for indoor tracking on an Android Smartphone.
These are slides accompanying the Masters thesis of the same name presented as part of the graduating requirements at IIT Roorkee. They detail a sensor fusion based approach taken to indoor tracking on smartphones.
This document discusses kernel-level rootkits in Linux. It explains that kernel-level rootkits are more robust than user-space rootkits because they can hide processes and prevent system crashes or reboots from revealing the intrusion. It then provides steps for creating a trivial kernel-based rootkit, including loading a kernel module, hooking a system call like getdent64, and overcoming challenges around locating the sys_call_table and modifying kernel memory. The document suggests some new techniques rootkits could use beyond just syscall hooking, and concludes by thanking the reader.
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityAndrew Case
This document discusses analyzing Linux rootkits using Volatility, an open source memory forensics framework. It analyzes several Linux rootkits including Average Coder, KBeast, and Jynx/Jynx 2. For each rootkit, it describes the rootkit's techniques for hiding processes, files, network connections and how Volatility plugins like linux_check_fop, linux_check_modules, linux_check_syscall, and linux_check_afinfo can detect the rootkit by validating file operations structures, the kernel module list, system call tables, and network operations structures. It also shows how Volatility can recover hidden files, processes, network connections, and shared libraries loaded by the root
The document provides an overview of the Linux kernel architecture and processes. It discusses key kernel concepts like the monolithic kernel design, system calls, loadable modules, virtual memory, and preemptive multitasking. It also covers kernel functions, layers, and context switching between processes. The CPU scheduler, multi-threading, inter-process communication techniques, and tunable kernel parameters are summarized as well.
The TCP/IP stack in the FreeBSD kernel COSCUP 2014Kevin Lo
The document provides an overview of the TCP/IP network stack implementation in the FreeBSD kernel. It describes the key data structures used, including mbufs for packet handling, domains and protosw structures for protocol handling, and protocol control blocks (PCBs) that contain per-connection state. Examples are given of different mbuf types like simple, packet header, and external cluster mbufs.
LAS16-403 - GDB Linux Kernel Awareness Peter Griffin
The document discusses extending the GNU Debugger (GDB) to provide better Linux kernel debugging capabilities by adding "Linux awareness" features, including providing information about running tasks, loaded modules, and OS helper commands, and it describes the work by the ST Landing Team and Linaro Toolchain Working Group to upstream these extensions from the ST Linux Kernel Debugger (LKD) plugin into GDB.
The Linux Kernel Implementation of Pipes and FIFOsDivye Kapoor
A walkthrough of the code structure used in the linux kernel to implement pipes and FIFOs.
This was presented to a Senior level class at the Indian Institute of Technology, Roorkee.
This document describes techniques for creating rootkits on Linux x86 systems. It discusses obtaining the system call table, hooking system calls through various methods like direct modification of the table, inline hooking of system call code, and patching the system call handler. It also presents the idea of abusing debug registers to generate exceptions and intercept system calls. The goal is to conceal running processes, files, and other system data from detection.
This document summarizes a presentation on Linux kernel exploitation given by Jon Oberheide. The presentation covered why the Linux kernel is an attractive target, a history of vulnerabilities in the kernel, classes of vulnerabilities, and ways to improve kernel security. Specific vulnerability examples discussed included privilege escalation using ReiserFS extended attributes and a NULL pointer dereference in OpenBSD that was leveraged for a multi-stage kernel exploit. The presentation encouraged both researchers to investigate kernel vulnerabilities and administrators to deploy additional hardening techniques.
Part 04 Creating a System Call in LinuxTushar B Kute
Presentation on "System Call creation in Linux".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
This document provides an overview of understanding computer networks. It discusses network card models and bandwidth, latency of gigabit network cards, new trends in network cards, important performance metrics, Linux network protocol stacks, tuning the protocol stack, interrupt balancing, network bonding, observing network behavior with tools like ksysguard, wireshark, iptraf, socktop, the cost of network system calls, issues caused by insufficient memory in the protocol stack, packet dropping observation and analysis, and the ethtool utility.
The document discusses using the GNU Debugger (gdb) to debug applications. It covers when to use a debugger, invoking and configuring gdb, setting breakpoints, examining stack frames and data, disassembling code, and viewing registers. Gdb allows stepping through code, viewing variables and memory, and setting conditional breakpoints to debug programs.
This document discusses CPUs and provides information about their architecture and performance. It begins with an overview and outlines topics like measurement, utilization, chipset architecture, cache hierarchy, and components inside CPUs. Examples are given of Intel Xeon and Sandy Bridge CPUs. Performance numbers are listed for operations like L1/L2 cache references and network/disk data transfers. Tools for investigating hardware topology and benchmarking micro-level performance are also introduced.
Part 02 Linux Kernel Module ProgrammingTushar B Kute
Presentation on "Linux Kernel Module Programming".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
The call stack is a data structure that stores information about active subroutines in a computer program. It keeps track of the point to which each subroutine should return control when finished. Subroutines can call other subroutines, resulting in information stacking up on the call stack. The call stack is composed of stack frames containing state information for each subroutine. Debuggers like GDB allow viewing the call stack to see how the program arrived at its current state.
The document discusses the Linux kernel and its structure. The Linux kernel acts as the interface between hardware and software, contains device drivers for peripherals, handles resource allocation and tracking application access to files. It is also responsible for security and access controls for users. The kernel version numbers use even numbers to indicate stable releases.
TCP/IP is a protocol suite that includes IP, TCP, and UDP. IP provides connectionless and unreliable delivery of datagrams between hosts. TCP provides reliable, connection-oriented byte stream delivery between processes using ports. UDP offers minimal datagram delivery between processes using ports in an unreliable manner. The choice between TCP and UDP depends on the application's requirements for reliability and overhead.
"10 Pitfalls of a Platform Team", Yura RochniakFwdays
There are many obstacles and pitfalls on the path towards operational zen. Many routes could lead to dead ends and many detours could end up being loops.
In this semi-comedy talk I share some examples of how processes fail for engineering teams that I observed through my career, using two pillars of the Internet culture - memes and numbered lists.
Getting Started with AWS - Enterprise Landing Zone for Terraform Learning & D...Chris Wahl
Recording: https://youtu.be/PASG0NTKUQA?si=1Ih7O9z0Lk0IzX9n
Welcome innovators! In this comprehensive tutorial, you will learn how to get started with AWS Cloud and Terraform to build an enterprise-like landing zone for a secure, low-cost environment to develop with Terraform. We'll guide you through setting up AWS Control Tower, Identity and Access Management, and creating a sandbox account, ensuring you have a safe and controlled area for learning and development. You'll also learn about budget management, single sign-on setup, and using AWS organizations for policy management. Plus, dive deep into Terraform basics, including setting up state management, migrating local state to remote state, and making resource modifications using your new infrastructure as code skills. Perfect for beginners looking to master AWS and Terraform essentials!
A particle filter based scheme for indoor tracking on an Android SmartphoneDivye Kapoor
A particle filter based scheme for indoor tracking on an Android Smartphone.
These are slides accompanying the Masters thesis of the same name presented as part of the graduating requirements at IIT Roorkee. They detail a sensor fusion based approach taken to indoor tracking on smartphones.
This document discusses kernel-level rootkits in Linux. It explains that kernel-level rootkits are more robust than user-space rootkits because they can hide processes and prevent system crashes or reboots from revealing the intrusion. It then provides steps for creating a trivial kernel-based rootkit, including loading a kernel module, hooking a system call like getdent64, and overcoming challenges around locating the sys_call_table and modifying kernel memory. The document suggests some new techniques rootkits could use beyond just syscall hooking, and concludes by thanking the reader.
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityAndrew Case
This document discusses analyzing Linux rootkits using Volatility, an open source memory forensics framework. It analyzes several Linux rootkits including Average Coder, KBeast, and Jynx/Jynx 2. For each rootkit, it describes the rootkit's techniques for hiding processes, files, network connections and how Volatility plugins like linux_check_fop, linux_check_modules, linux_check_syscall, and linux_check_afinfo can detect the rootkit by validating file operations structures, the kernel module list, system call tables, and network operations structures. It also shows how Volatility can recover hidden files, processes, network connections, and shared libraries loaded by the root
The document provides an overview of the Linux kernel architecture and processes. It discusses key kernel concepts like the monolithic kernel design, system calls, loadable modules, virtual memory, and preemptive multitasking. It also covers kernel functions, layers, and context switching between processes. The CPU scheduler, multi-threading, inter-process communication techniques, and tunable kernel parameters are summarized as well.
The TCP/IP stack in the FreeBSD kernel COSCUP 2014Kevin Lo
The document provides an overview of the TCP/IP network stack implementation in the FreeBSD kernel. It describes the key data structures used, including mbufs for packet handling, domains and protosw structures for protocol handling, and protocol control blocks (PCBs) that contain per-connection state. Examples are given of different mbuf types like simple, packet header, and external cluster mbufs.
LAS16-403 - GDB Linux Kernel Awareness Peter Griffin
The document discusses extending the GNU Debugger (GDB) to provide better Linux kernel debugging capabilities by adding "Linux awareness" features, including providing information about running tasks, loaded modules, and OS helper commands, and it describes the work by the ST Landing Team and Linaro Toolchain Working Group to upstream these extensions from the ST Linux Kernel Debugger (LKD) plugin into GDB.
The Linux Kernel Implementation of Pipes and FIFOsDivye Kapoor
A walkthrough of the code structure used in the linux kernel to implement pipes and FIFOs.
This was presented to a Senior level class at the Indian Institute of Technology, Roorkee.
This document describes techniques for creating rootkits on Linux x86 systems. It discusses obtaining the system call table, hooking system calls through various methods like direct modification of the table, inline hooking of system call code, and patching the system call handler. It also presents the idea of abusing debug registers to generate exceptions and intercept system calls. The goal is to conceal running processes, files, and other system data from detection.
This document summarizes a presentation on Linux kernel exploitation given by Jon Oberheide. The presentation covered why the Linux kernel is an attractive target, a history of vulnerabilities in the kernel, classes of vulnerabilities, and ways to improve kernel security. Specific vulnerability examples discussed included privilege escalation using ReiserFS extended attributes and a NULL pointer dereference in OpenBSD that was leveraged for a multi-stage kernel exploit. The presentation encouraged both researchers to investigate kernel vulnerabilities and administrators to deploy additional hardening techniques.
Part 04 Creating a System Call in LinuxTushar B Kute
Presentation on "System Call creation in Linux".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
This document provides an overview of understanding computer networks. It discusses network card models and bandwidth, latency of gigabit network cards, new trends in network cards, important performance metrics, Linux network protocol stacks, tuning the protocol stack, interrupt balancing, network bonding, observing network behavior with tools like ksysguard, wireshark, iptraf, socktop, the cost of network system calls, issues caused by insufficient memory in the protocol stack, packet dropping observation and analysis, and the ethtool utility.
The document discusses using the GNU Debugger (gdb) to debug applications. It covers when to use a debugger, invoking and configuring gdb, setting breakpoints, examining stack frames and data, disassembling code, and viewing registers. Gdb allows stepping through code, viewing variables and memory, and setting conditional breakpoints to debug programs.
This document discusses CPUs and provides information about their architecture and performance. It begins with an overview and outlines topics like measurement, utilization, chipset architecture, cache hierarchy, and components inside CPUs. Examples are given of Intel Xeon and Sandy Bridge CPUs. Performance numbers are listed for operations like L1/L2 cache references and network/disk data transfers. Tools for investigating hardware topology and benchmarking micro-level performance are also introduced.
Part 02 Linux Kernel Module ProgrammingTushar B Kute
Presentation on "Linux Kernel Module Programming".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
The call stack is a data structure that stores information about active subroutines in a computer program. It keeps track of the point to which each subroutine should return control when finished. Subroutines can call other subroutines, resulting in information stacking up on the call stack. The call stack is composed of stack frames containing state information for each subroutine. Debuggers like GDB allow viewing the call stack to see how the program arrived at its current state.
The document discusses the Linux kernel and its structure. The Linux kernel acts as the interface between hardware and software, contains device drivers for peripherals, handles resource allocation and tracking application access to files. It is also responsible for security and access controls for users. The kernel version numbers use even numbers to indicate stable releases.
TCP/IP is a protocol suite that includes IP, TCP, and UDP. IP provides connectionless and unreliable delivery of datagrams between hosts. TCP provides reliable, connection-oriented byte stream delivery between processes using ports. UDP offers minimal datagram delivery between processes using ports in an unreliable manner. The choice between TCP and UDP depends on the application's requirements for reliability and overhead.
"10 Pitfalls of a Platform Team", Yura RochniakFwdays
There are many obstacles and pitfalls on the path towards operational zen. Many routes could lead to dead ends and many detours could end up being loops.
In this semi-comedy talk I share some examples of how processes fail for engineering teams that I observed through my career, using two pillars of the Internet culture - memes and numbered lists.
Getting Started with AWS - Enterprise Landing Zone for Terraform Learning & D...Chris Wahl
Recording: https://youtu.be/PASG0NTKUQA?si=1Ih7O9z0Lk0IzX9n
Welcome innovators! In this comprehensive tutorial, you will learn how to get started with AWS Cloud and Terraform to build an enterprise-like landing zone for a secure, low-cost environment to develop with Terraform. We'll guide you through setting up AWS Control Tower, Identity and Access Management, and creating a sandbox account, ensuring you have a safe and controlled area for learning and development. You'll also learn about budget management, single sign-on setup, and using AWS organizations for policy management. Plus, dive deep into Terraform basics, including setting up state management, migrating local state to remote state, and making resource modifications using your new infrastructure as code skills. Perfect for beginners looking to master AWS and Terraform essentials!
It is an in-depth exploration of how technology is transforming the financial sector. Covering the evolution of FinTech from credit cards to AI-driven banking, this guide explains key innovations such as blockchain, DeFi, AI-powered assistants, and central bank digital currencies (CBDCs). Learn how FinTech is enhancing banking, lending, and payments through automation, data analytics, and decentralized solutions. Whether you're a financial professional or just curious about the future of digital finance, this guide offers valuable insights into the rapidly evolving FinTech landscape.
"Kubernetes operators. How we migrated Release Management to controllers", De...Fwdays
Kubernetes Controllers and Operators are a trending topic in conferences, interviews, and production today. I will share the story of the evolution of our Promotion (Release) system, from simple Kubernetes API REST calls to Informers and Controllers, based on my own experience. This story is particularly interesting because it serves as a great case for personal growth for you as well as for your DevOps/SRE team. It touches on Kubernetes architecture details, Networking, GitOps, IaC, Caching, development patterns, and Golang data structures. Even if you have no development experience (as is the case for most of our team), I will share how a Cursor AI assistant became yet another — though virtual — engineer on our team.
Bonus: 10 years of Kubernetes & trends KubeCon24 North America.
"Zero-sales lost — Incident Management", Igor DrozdFwdays
In my presentation, I will discuss the key aspects of the Zero Sales Lost strategy, focusing on incident management in the context of E-commerce development and the "Silpo" ecosystem. I will share our experience in building an incident management process, the specifics of monitoring and alerting system architecture, and how we scaled these processes across 19 products and 41 teams.
Additionally, we will explore the role of DevOps culture and team responsibility in product development. Using real case studies, we will analyze whether critical failures can be prevented and how to achieve that effectively.
Caching for Performance Masterclass: Caching at ScaleScyllaDB
Weighing caching considerations for use cases with different technical requirements and growth expectations.
- Request coalescing
- Negative sharding
- Rate limiting
- Sharding and scaling
In this pdf inculde the slide that shows about the use of nano technology in agriculture that is also a content for BSC agriculture and MSc agriculture ( in favour agronomy support)
The Constructor's Digital Transformation Playbook: Reducing Risk With TechnologyAggregage
https://www.professionalconstructorcentral.com/frs/27678427/the-constructor-s-digital-transformation-playbook--reducing-risk-with-technology
Reduce risk and boost efficiency with digital transformation in construction. Join us to explore how AI, automation, and data-driven insights can improve project safety and streamline operations.
Caching for Performance Masterclass: Caching StrategiesScyllaDB
Exploring the tradeoffs of common caching strategies – and a look at the architectural differences.
- Which strategies exist
- When to apply different strategies
- ScyllaDB cache design
16 KALALU🕉️🏇🪓🪈🏹👑👑👑👑👑🤴🦁💿✈️🛸🚀🪩🥏🍥 APARAMAHASAHASRA SIMHAMAHANKALKIADIPARASAKTIBH...IT Industry
🕉️🕺🌎🌌🦸👑👑👑👑👑🤴💝🎉🏆✈️🛸🚀🪩🥏💿🍥🏹🪈🪓🏇 BHAGWAN SRI RAMA SIMHA OMKARAM SRI SRI KING VISNU KALKI SRI KRISNA PARAMATMA SRI SRI KING VISNU SARAT KRISNA PARAMATMA SRI SRI KING ADISIMHA APARAMAHASAHASRA SAHASRASAMASTA SAHASRA SAMASTA APARAMAHASAHASRA BHARGAVA SIMHA TRINETRA APARAMAHASAHASRA SIMHAMAHANKALI ADIPARASAKTI KVADIPARASAKTI ANEKASAHASRA MAHA INFINITY SIMHA SAHASRA AVATARAMULU SRI SRI KING VISNU SUPREME GODS HEADS KING VISNU SUPREME ALFAONKA SAHASRA SAMASTA APARAMAHASAHASRA BHARGAVA SIMHA TRINETRA APARAMAHASAHASRA SIMHAMAHANKALI ADIPARASAKTI KVADIPARASAKTI VAARE SRI SRI KING VISNU KAVERI VEERA BHARAT BHUSHAN MR.KALKIKINGSUPREMEGODSHEADS MEGA KALKI ROBO ALIENS KING SUPREME GODS HEADS KING ALFA SUPREMO 16 KALALU !! 🪓🏇🪈🏹🍥💿🥏🪩🚀🛸✈️🏆🎉💝🤴👑👑👑👑👑🦸🕺🌌🌎🕉️
"Reality of Managing 100+ “Managed” RDS Postgres Databases", Mykyta HlushakFwdays
During the lecture, Mykyta will share the story of Solidgate's journey in building a high-performing and reliable fintech company, striving for 99.999% uptime on AWS’s SaaS platform. He'll uncover numerous caveats in doing things right without full system access, addressing product requirements, and staying up to date.
UiPath Automation Developer Associate Training Series 2025 - Session 1DianaGray10
Welcome to UiPath Automation Developer Associate Training Series 2025 - Session 1.
In this session, we will cover the following topics:
Introduction to RPA & UiPath Studio
Overview of RPA and its applications
Introduction to UiPath Studio
Variables & Data Types
Control Flows
You are requested to finish the following self-paced training for this session:
Variables, Constants and Arguments in Studio 2 modules - 1h 30m - https://academy.uipath.com/courses/variables-constants-and-arguments-in-studio
Control Flow in Studio 2 modules - 2h 15m - https:/academy.uipath.com/courses/control-flow-in-studio
⁉️ For any questions you may have, please use the dedicated Forum thread. You can tag the hosts and mentors directly and they will reply as soon as possible.
Revolutionizing Field Service: How LLMs Are Powering Smarter Knowledge Access...Earley Information Science
Revolutionizing Field Service with LLM-Powered Knowledge Management
Field service technicians need instant access to accurate repair information, but outdated knowledge systems often create frustrating delays. Large Language Models (LLMs) are changing the game—enhancing knowledge retrieval, streamlining troubleshooting, and reducing technician dependency on senior staff.
In this webinar, Seth Earley and industry experts Sanjay Mehta, and Heather Eisenbraun explore how LLMs and Retrieval-Augmented Generation (RAG) are transforming field service operations. Discover how AI-powered knowledge management is improving efficiency, reducing downtime, and elevating service quality.
LLMs for Instant Knowledge Retrieval – How AI-driven search dramatically cuts troubleshooting time.
Structured Data & AI – Why high-quality, organized knowledge is essential for LLM success.
Real-World Implementation – Lessons from deploying LLM-powered knowledge tools in field service.
Business Impact – How AI reduces service delays, optimizes workflows, and enhances technician productivity.
Empower your field service teams with AI-driven knowledge access. Watch the webinar to see how LLMs are revolutionizing service efficiency.
Dev Dives: Unlock the future of automation with UiPath Agent BuilderUiPathCommunity
This webinar will offer you a first look at the powerful capabilities of UiPath Agent Builder, designed to streamline your automation processes and enhance your workflow efficiency.
📕 During the session, you will:
- Discover how to build agents with low-code experience, making it accessible for both developers and business users.
- Learn how to leverage automations and activities as tools within your agents, enabling them to handle complex and dynamic workflows.
- Gain insights into the AI Trust Layer, which provides robust management and monitoring capabilities, ensuring trust and transparency in your automation processes.
- See how agents can be deployed and integrated with your existing UiPath cloud and Studio environments.
👨🏫 Speaker:
Zach Eslami, Sr. Manager, Product Management Director, UiPath
⏩ Register for our upcoming Dev Dives March session:
Unleash the power of macOS Automation with UiPath
👉 AMER: https://bit.ly/Dev_Dives_AMER_March
👉 EMEA & APJ:https://bit.ly/Dev_Dives_EMEA_APJ_March
This session was streamed live on February 27, 2025, 15:00 GMT.
Check out future Dev Dives 2025 sessions at:
🚩 https://bit.ly/Dev_Dives_2025
"DevOps culture and digital transformation process of Temabit Fozzy Group", O...Fwdays
The transformation of a large organization is a marathon where every step requires coordinated teamwork, creative solutions, and a willingness to embrace mistakes.
We will discuss:
- How to properly plan global changes in a company with over 25,000 clients.
- Why communication between technical teams and the business is the key to success.
- SRE, R&D, and Architecture as drivers of transformation.
- The role of FinOps in sustainable development.
- Real-life cases, mistakes, and lessons learned.
This will be a story of ups and downs that helped us turn challenges into opportunities.
10. Entry point from the kernel to
your application
• Client sends SYN
• Kernel hands SYN to Server
• Server calls accept()
• Kernel sends SYN/ACK
• Client sends ACK
Wednesday, June 19, 13
11. Backlog
• Number of connections allowed to be in a SYN state
• Kernel will drop new SYNs when this limit is hit
• Clients wait 3s before trying again, then 9s on second failure
Wednesday, June 19, 13
12. Backlog Tuning (kernel side)
• net.ipv4.tcp_max_syn_backlog and net.core.somaxconn
• Default value of 1024 is for “systems with more than 128MB of
memory”
• 64 bytes per entry
• Undocumented max of 65535
Wednesday, June 19, 13
13. Backlog Tuning (app side)
• Set when you call listen()
• nginx, redis, apache default to 511
• mysql default of 50
Wednesday, June 19, 13
15. The SYN Flood
• Resource exhaustion attack
• Cheaper for attacker than target
• Client sends SYN with bogus return address
• Until the ACK is completed the connection occupies a slot in the
backlog queue
Wednesday, June 19, 13
16. The SYN Cookie
• When enabled, kicks in when the backlog queue is full
• Sends a slightly more expensive but carefully crafted SYN/ACK then
drops the SYN from the queue
• If the client responds to the SYN/ACK it can rebuild the original SYN
and proceed
• Does disable large windows when active, but better than dropping
entirely
Wednesday, June 19, 13
17. Dealing with a SYN Flood
• Default to syncookies enabled and alert when triggered
• tcpdump/wireshark
• Frequently attacks have a detectable signature such as all having the same initial window size
• iptables is very flexible for matching these signatures, but can be expensive
• If hardware filters are available, use iptables to identify and hardware to block
Wednesday, June 19, 13
19. Queues
• Modern network hardware is multi-queue
• By default assigns a queue per cpu core
• Should get even balancing of incoming requests, irqbalance can mess
that up
• Intel ships a script with their drivers to aid in static assignment to
avoid irqbalance
Wednesday, June 19, 13
20. Packet Filters
• Intel and others have packet filters in their nics
• Small, only 128 wide in the intel 82599
• Much more limited matchers than iptables
• src,dst,type,port,vlan
Wednesday, June 19, 13
21. Hardware Flow Director
• Same mechanism as filters, just includes a mapping destination
• Set affinity to put both queue and app on same core
• Good for things like SSH and BGPD
• Maintain access in the face of an attack on other services
Wednesday, June 19, 13
23. Full Offload
• Not so good on the public net
• Limited buffer resources on card
• Black box from a security perspective
• Can break features like filtering and QoS
Wednesday, June 19, 13
25. Large Receive Offload
• Collapses packets into a larger buffer before handing to OS
• Great for large volume ingress, which is not http
• Doesn’t work with ipv6
Wednesday, June 19, 13
26. Generic Receive Offload
• Similar to LRO, but more careful
• Will only merge “safe” packets into a buffer
• Will flush at timestamp tick
• Usually a win and you should test
Wednesday, June 19, 13
27. TCP Segementation
• OS fills a 64KB buffer and produces a single header template
• NIC splits the buffer into segements and checksums before sending
• Can save lots of overhead, but not much of a win in small request/
response cycles
Wednesday, June 19, 13
29. Bonding
• Linux bonding driver uses a single queue, large bottleneck for high
packet rates
• teaming driver should be better, userspace tools only worked in
modern fedora core so gave up
• Myricom hardware can do bonding natively
Wednesday, June 19, 13
31. Why Slow Start
• Early TCP implementations allowed the sender to immediately send as
much data as the client window allowed
• In 1986 the internet suffered first congestion collapse
• 1000x reduction in effective throughput
• 1988Van Jacobsen proposes Slow Start
Wednesday, June 19, 13
32. Slow Start
• Goal is to avoid putting more data in flight than there is bandwidth
available
• Client sends a receive window size of how much data they can buffer
• Server sends an inital burst based on server inital congestion window
• Double the window size for each received ACK
• Increases until a packet drop or slow start threshold is reached
Wednesday, June 19, 13
33. Tuning Slow Start
• Increase your congestion window
• 2.6.39+ defaults to 10
• 2.6.19+ can be set as a path attribute
• ip route change default via 172.16.0.1 dev eth0 proto static initcwnd 10
Wednesday, June 19, 13
34. Proportional Rate Reduction
• Added in linux 3.2
• Prior to PRR a loss would halve to congestion window potentially
below the slow start threshold
• PRR paces retransmits to smooth out
• Makes disabling net.ipv4.tcp_no_metrics_save safer
Wednesday, June 19, 13
37. Buffer Tuning
• 16MB buffer at 50ms RTT = 320MB/s max rate
• Set as 3 values; min, default, and max
• net.ipv4.tcp_rmem = 4096 65536 16777216
• net.ipv4.tcp_wmem = 4096 65536 16777216
Wednesday, June 19, 13
38. TIME_WAIT
• State entered after a server has closed the connection
• Kept around in case of delayed duplicate ACKs to our FIN
Wednesday, June 19, 13
39. Busy servers collect a lot
• Default timeout is 2 * FIN timeout, so120s in linux
• Worth dropping FIN timeout
• net.ipv4.tcp_fin_timeout = 10
Wednesday, June 19, 13
40. Tuning TIME_WAIT
• net.ipv4.tcp_tw_reuse=1
• Reuse sockets in TIME_WAIT if safe to do so
• net.ipv4.tcp_max_tw_buckets
• Default of 131072, way too small for most sites
• Connections/s * timeout value
Wednesday, June 19, 13
42. net.ipv4.tcp_tw_reuse
• Allows the reuse of a TIME_WAIT socket if the client’s timestamp
increases
• Silently drops SYNs from the client if they don’t, like can happen
behind NAT
• Still useful for high churn servers when you can make assumptions of
local network
Wednesday, June 19, 13
43. SSL and Keepalives
• Enable them if at all possible
• The initial handshake is the most computationally intensive part
• 1-10ms on modern hardware
• 6 * RTT before user gets data really sucks over long distances
• SV to LON = 160ms = 1s before user starts getting content
Wednesday, June 19, 13
44. SSL and Geo
• If you can move SSL termination closer to you users, do so
• Most CDNs offer this, even for non-cacheable things
• EC2 and Route53 is another option
Wednesday, June 19, 13
45. In closing
• Upgrade your kernel
• Increase your initial congestion window
• Check your backlog and time wait limits
• Size your buffers to something reasonable
• Get closer to your users if you can
Wednesday, June 19, 13