寫點東西吧,懒人。

· ☕ 1 分钟
Streams, messages, and frames https://developers.google.com/web/fundamentals/performance/http2 The introduction of the new binary framing mechanism changes how the data is exchanged between the client and server. To describe this process, let’s familiarize ourselves with the HTTP/2 terminology: Stream: A bidirectional flow of bytes within an established connection, which may carry one or more messages. Message: A complete sequence of frames that map to a logical request or response message. Frame: The smallest unit of communication in HTTP/2, each containing a frame header, which at a minimum identifies the stream to which the frame belongs.

· ☕ 2 分钟
curl http2 https://http2-explained.haxx.se/en/part11 11.1. HTTP 1.x look-alike Internally, curl will convert incoming http2 headers to HTTP 1.x style headers and provide them to the user, so that they will appear very similar to existing HTTP. This allows for an easier transition for whatever is using curl and HTTP today. Similarly curl will convert outgoing headers in the same style. Give them to curl in HTTP 1.x style and it will convert them on the fly when talking to http2 servers.

· ☕ 1 分钟
https://pi3g.com/2019/01/17/envoy-as-http-2-front-proxy-enabling-http-2-for-envoy-aka-h2/ envoy as http 2 front proxy – enabling http 2 for envoy (aka h2) By Maximilian Batz | 2019-01-17 Out of the box envoy is not configured to set up connections with clients connecting to it with the new HTTP/2. HTTP/2 is optimized for the modern web, with binary headers, etc. – higher speed. Since envoy is capable of speaking HTTP/2 to clients, it is a no-brainer to set it up.

· ☕ 1 分钟
Header case https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2 8.1.2. HTTP Header Fields HTTP header fields carry information as a series of key-value pairs. For a listing of registered HTTP headers, see the “Message Header Field” registry maintained at <https://www.iana.org/assignments/ message-headers>. Just as in HTTP/1.x, header field names are strings of ASCII characters that are compared in a case-insensitive fashion. However, header field names MUST be converted to lowercase prior to their encoding in HTTP/2. A request or response containing uppercase header field names MUST be treated as malformed (Section 8.

· ☕ 6 分钟
Negotiation HTTP 1.1 plain text Upgrade header https://http2-explained.haxx.se/en/part5#5.1.-http2-for-existing-uri-schemes As mentioned already, the existing URI schemes cannot be modified, so http2 must use the existing ones. Since they are used for HTTP 1.x today, we obviously need a way to upgrade the protocol to http2, or otherwise ask the server to use http2 instead of older protocols. HTTP 1.1 has a defined way to do this, namely the Upgrade: header, which allows the server to send back a response using the new protocol when getting such a request over the old protocol, at the cost of an additional round-trip.

· ☕ 1 分钟
Ubuntu 包溯源 文件来自什么样包 - finding the package a file belongs 1 2 labile@worknode1:/etc/apt/sources.list.d$ dpkg -S /usr/bin/crictl cri-tools: /usr/bin/crictl 包来自什么源 - How do I find out which repository a package comes from 1 2 3 4 5 6 7 8 9 10 11 apt-cache policy cri-tools cri-tools: Installed: 1.19.0-00 Candidate: 1.19.0-00 Version table: *** 1.19.0-00 500 500 https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages 100 /var/lib/dpkg/status 1.13.0-01 500 500 https://apt.kubernetes.io kubernetes-xenial/main amd64 Packages

· ☕ 1 分钟
Ref https://shipilev.net/jvm/anatomy-quarks/2-transparent-huge-pages/ https://kstefanj.github.io/2021/05/19/large-pages-and-java.html

· ☕ 1 分钟
https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/

· ☕ 1 分钟
Ref https://thesaitech.wordpress.com/2018/12/28/do-huge-pages-really-lead-to-huge-performance-gains/

· ☕ 1 分钟
https://www.xtivia.com/blog/fixing-jmeter-socket-errors/

· ☕ 1 分钟
Cycles per instruction (CPI) : As we know, all the requests are served by CPU in the form of instruction sets. A single request can translated in to 100’s of instruction sets. Cycles spent per instruction is an important parameter which helps understand where CPU is spending its clock cycles. This metrics can also be expressed in the inverse form, i.e, Instructions per Cycle (IPC). It is important to note that CPI value signifies the efficiency of instruction processing , but not of the instructions themselves.

· ☕ 1 分钟
https://easyperf.net/blog/2019/02/09/Top-Down-performance-analysis-methodology In this post I show more formal way to do performance analysis. It’s called Top-down Microarchitecture Analysis Method (TMAM) (Intel® 64 and IA-32 Architectures Optimization Reference Manual, Appendix B.1). In this metodology we try to detect what was stalling our execution starting from the high-level components (like Front End, Back End, Retiring, Branch predictor) and narrowing down the source of performance inefficiencies. It’s an iterative process with 2 steps:

· ☕ 1 分钟
1 perf stat -d Ref https://www.brendangregg.com/perf.html