'Performance'에 해당되는 글 13

This is an expanded version of my talk at NginxConf 2017 on September 6, 2017. As an SRE on the Dropbox Traffic Team, I’m responsible for our Edge network: its reliability, performance, and efficiency. The Dropbox edge network is an nginx-based proxy tier designed to handle both latency-sensitive metadata transactions and high-throughput data transfers. In a system that is handling tens of gigabits per second while simultaneously processing tens of thousands latency-sensitive transactions, there are efficiency/performance optimizations throughout the proxy stack, from drivers and interrupts, through TCP/IP and kernel, to library, and application level tunings.
2018/01/03 12:56 2018/01/03 12:56
이 글에는 트랙백을 보낼 수 없습니다
오픈아이디로만 댓글을 남길 수 있습니다
분류없음  2017/12/30 09:27
objgraph is a module that lets you visually explore Python object graphs.
2017/12/30 09:27 2017/12/30 09:27
이 글에는 트랙백을 보낼 수 없습니다
오픈아이디로만 댓글을 남길 수 있습니다
분류없음  2017/12/30 09:08

Introduction to XDP

XDP or eXpress Data Path provides a high performance, programmable network data path in the Linux kernel as part of the IO Visor Project. XDP provides bare metal packet processing at the lowest point in the software stack which makes it ideal for speed without compromising programmability. Furthermore, new functions can be implemented dynamically with the integrated fast path without kernel modification. Other key benefits of XDP includes the following:

  • It does not require any specialized hardware
  • It does not required kernel bypass
  • It does not replace the TCP/IP stack
  • It works in concert with TCP/IP stack along with all the benefits of BPF

XDP Packet Processing Overview

The XDP packet process includes an in kernel component that processes RX packet-pages directly out of driver via a functional interface without early allocation of skbuff’s or software queues. Normally, one CPU is assigned to each RX queue but in this model, there is no locking RX queue, and CPU can be dedicated to busy poll or interrupt model. BPF programs performs processing such as packet parsing, table look ups, creating/managing stateful filters, encap/decap packets, etc.

XDP Packet Processing

The extensibility of BPF is kept intact with packet inspection and manipulation functions, flow and table lookups, and application processing leveraging BPF programs which are portable to userspace and other operating systems.

2017/12/30 09:08 2017/12/30 09:08
이 글에는 트랙백을 보낼 수 없습니다
오픈아이디로만 댓글을 남길 수 있습니다


As a newcomer to gRPC (in Go) there are many resources setting out what gRPC is, where it originated from and how to create a basic service and client. After completing an introduction to gRPC and setting up a basic implementation I felt a bit lost as to where I need to go next.

gRPC consists of more than just sending binary blobs over HTTP/2. gRPC is also a set of libraries that will provide higher-level features consistently across platforms that other libraries typically do not. The purpose of this blog is to be a guideline for where to find the resources and leverage these libraries and features to make the most of the gRPC ecosystem after you understand the basics of gRPC.

Note:To minimise bloat this article assumes knowledge of gRPC and Protocol Buffers.

2017/12/26 11:42 2017/12/26 11:42
이 글에는 트랙백을 보낼 수 없습니다
오픈아이디로만 댓글을 남길 수 있습니다

The Solution — Use Concurrency, But Hold Your Horses

So how can we gain the performance benefits of concurrent code without setting up a shower of goroutines? Well, one nice way to limit concurrency in go is by using a Buffered Channel Semaphore. Buffered channels in go are a nice and easy way to block execution based on the number of concurrent units of actions we want to have.

We set a buffered channel with a capacity of 100, and when we spawn the goroutines to perform the asynchronous computation, we revert to using the synchronous version of MergeSort if there are already 100 workers (goroutines) busy with the computation:

Source :
2017/05/18 05:26 2017/05/18 05:26
이 글에는 트랙백을 보낼 수 없습니다
오픈아이디로만 댓글을 남길 수 있습니다
Dot:Where is ......
Where is ......
전체 (175)
주절거림 (60)
윈도우벽지 (2)
Shoveling.. (9)
주워들은것들.. (48)
요집이 괜찮더라!! (0)
찍사놀이 (7)
관심꺼리~ (4)
«   2018/06   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
  1. 내 맘대로 보는 세상  2009
    맘에 안드는 Internet Explorer 업데이트 방침!
  2. 시리니  2008
    브라우저 업데이트, 작지만 큰 실천입니다.
  3. Dinosur와 KM의 Blog  2007
    저도 보통 사람
  1. 2018/01 (11)
  2. 2017/12 (10)
  3. 2017/10 (1)
  4. 2017/05 (13)
  5. 2017/04 (7)