Monthly Shaarli

All links of one month in a single page.

October, 2023

全闪NAS(5*M.2 NVMe)暨软路由AIO,N100作业 - 原创分享(新) - Chiphell - 分享与交流用户体验

全闪NAS(5*M.2 NVMe)暨软路由AIO,N100作业,前言这是一份历时三个月的作业。联芸MAP1602+长江存储232L的国货精品,省电(待机不到0.1瓦 , 峰值最高3.98瓦)、省钱(999/4TB、499/2TB)、省空间(M.2 2280),掀开了 ...,原创分享(新),分享区-产品开箱与用户体验的分享 ,Chiphell - 分享与交流用户体验

Wiretrustee推出Raspberry Pi 4運算模組擴充板,最多可連接4組SATA硬碟 | T客邦
thumbnail

SATA Board for Raspberry Pi CM4是款專為Raspberry PI 4運算模組設計的擴充板,提供4組SATA端子,以及1組GbE乙太網路,能夠用於土砲NAS等裝置。

The product manager role is a mistake - Software Product Development Pills

文章指出產品經理的角色是一個錯誤,認為一個成功的產品公司應由有遠見的人領導而非一個職業產品經理。它解釋,偉大的領袖如賈伯斯或馬斯克從未是產品經理,他們由對願景的熱情驅動,而非資料或KPIs。文章警告,聘用缺乏願景的產品經理可能導致過度依賴數據,官僚主義,以及組織中低效的溝通和協作

电子邮件系统中的 DNS 记录

PTR, SPF, DKIM, DMARC

包处理的艺术(4)-低延迟智能网卡设计
thumbnail

这篇文章讨论了超低延迟(ULL)通信的重要性以及低延迟智能网卡的设计思路。作者首先提到了高频交易机构最早采用智能网卡来降低延迟,并且这一技术后来也被应用于其他领域,如人工智能训练。文章分析了几种常见的低延迟解决方案,包括Kernel Bypass、UDP Market Data Parser和TCP Offload Engine(TOE)。

作者进一步介绍了高频交易的常见业务模式,包括分离接口、行情过滤和重新编码。然后,文章讨论了传统CPU报文处理的缺陷,特别是报文解析的延迟,以及如何通过P4和硬件加速来降低这些延迟。

文章提到了两家公司,Pensando和Fungible,它们采用了不同的架构来处理报文,并提供了对这些架构的详细解释。Pensando的架构包括P4流水线引擎和本地缓存,以提高报文处理效率。而Fungible采用了Data Cluster结构,支持RTC编程,兼容C代码程序,同时采用了DAG处理方式,以实现低延迟和高并行。

最后,作者总结了文章的主要观点,即可以借鉴Pensando和Fungible等公司的思路和技术,通过优化FPGA网卡的设计和工具链来降低延迟,同时需要在高并行性和灵活性之间做出权衡。文章为那些对低延迟智能网卡设计感兴趣的读者提供了有用的思考和参考。

Comprehensive C++ Hashmap Benchmarks 2022
thumbnail

Where I've spent way too much time creating benchmarks of C++ hashmaps

Linux低延迟服务器系统调优 - 知乎

这篇文章讨论了系统和网络调优,特别关注Linux服务器的低延迟技术。作者提到了知乎上关于这一主题的讨论不够充分,并分享了自己的见解。文章分为两部分,本文主要涵盖系统调优,另一篇将探讨网络调优,特别是使用solarflare网卡来降低网络IO延迟。

文章的重点在于强调延迟的稳定性对于实时任务的重要性。作者提到了"kernel bypass",即绕过内核处理,以降低延迟。在实时任务中,避免进入内核,避免中断的关键,因为即使中断发生时线程是空闲的,CPU缓存也会被污染,从而影响下一次请求的延迟。

作者分享了一些修改系统设置的方法,如绑定关键线程到特定核心,避免中断源向核心发送中断等。此外,他提到了通过修改内核以延长中断发送周期来进一步提高延迟稳定性的可能性。

文章最后提到了两个原则:一是如果可以推迟一件事情,就应该推迟,二是不要为不使用的东西付费,这在性能优化方面尤为重要。

适合阅读这篇文章的对象包括对Linux服务器性能调优和低延迟技术感兴趣的系统工程师和网络工程师,特别是那些需要处理实时任务和对延迟稳定性有高要求的人员。文章提供了一些有用的见解和方法,可用于优化系统以降低延迟。

Startup-CTO-Handbook

The Startup CTO's Handbook, a book covering leadership, management and technical topics for leaders of software engineering teams

低延迟交易系统设计
thumbnail

这篇文章详细介绍了低延迟交易系统的不同方面,包括交易所交易系统、证券期货公司交易系统以及做市商系统。以下是对每个部分的简要总结:

  1. 交易所交易系统:

    • 介绍了交易所系统架构,强调了低延迟对于处理大量订单的重要性。
    • 讨论了交易所系统的优化,包括分布式撮合系统、独立的消息总线和低延迟通信网络。
    • 提到了时钟同步和时戳标记在交易系统中的关键作用,以确保公平的交易。
  2. 证券期货公司交易系统:

    • 描述了证券期货公司交易系统的架构,强调了时钟校准和时延监控的重要性。
    • 讨论了行情加速、报盘加速和主机加速等技术,以降低交易延迟。
    • 强调了行情过滤和重编码的方法,以减小传输带宽和串行时延。
  3. 做市商系统:

    • 解释了做市商的任务和重要性,他们为市场提供流动性。
    • 讨论了期权交易系统的复杂性,尤其是股票期权交易。
    • 提到了行情传输系统、行情过滤和重编码、行情分发等关键方面,以支持期权套利策略。

整体而言,这篇文章提供了深入的洞察力,关于低延迟交易系统的各个方面,从架构到优化措施再到实际策略的应用。对于从事金融科技领域的专业人士或对低延迟交易系统感兴趣的读者来说,这是一篇非常有价值的资料。

How to receive a million packets per second
thumbnail

這篇博客描述了一個在Linux環境下如何接收每秒一百萬個UDP數據包的實驗,並探討了Linux網絡堆棧的性能。

整個博客旨在通過實際實驗來探索和優化Linux網絡堆棧的性能,對於有網絡編程背景或對網絡性能優化感興趣的讀者來說,這是一個很好的學習資源。透過這篇博客,讀者可以了解到Linux網絡堆棧的基本工作原理,以及如何通過實驗和優化來提高網絡性能。

How to achieve low latency with 10Gbps Ethernet
thumbnail

該網誌文章描述了如何通過優化一個基於UDP的應用來實現低延遲,尤其是在10Gbps以太網環境中。以下是文章的重點:

  1. 實驗設置

    • 使用兩台物理Linux主機,一台作為客戶端,另一台作為服務器,通過簡單的UDP回聲協議進行通信。
    • 客戶端發送一個小的UDP幀(32字節的有效負載),並等待回復,測量往返時間(RTT)。服務器在收到封包後立即回送。
    • 確保iptablesconntrack不干擾流量,並手動分配多隊列網絡卡的中斷以保證它們在CPU之間均勻分配【98†(Cloudflare Blog)】。
  2. 低延遲設置

    • 設置如低rx-usecs或禁用LRO可能會減少吞吐量並增加中斷的次數,這意味著為低延遲優化系統可能會使其更容易受到服務拒絕攻擊的影響【102†(Cloudflare Blog)】。
  3. 低延遲的其他考慮因素

    • 在無線網絡中,低延遲可以通過不同的無線應用在私人5G,Wi-Fi和Cisco超可靠無線回程(URWB)部署中實現。影響端到端延遲的因素包括雲或數據中心的接近程度以及降低延遲的優化【103†(Cisco)】。
    • 測量網絡通信從起點到完成需要多長時間是改善網絡延遲的第一步。網絡經理可以選擇多種工具來完成這項任務,包括Ping,Traceroute和My traceroute(MTR)【104†(TechTarget)】。
    • 適當的網絡設計是延遲的一個功能。無線延遲必須與端到端的IP延遲和往返延遲一起考慮。應用程序位於哪裡,數據在數據中心,雲或網絡邊緣被處理的地方越接近,可能的延遲就越低【105†(Cisco Blogs)】。

通過這些步驟和考慮因素,開發人員和網絡工程師可以優化他們的系統以實現低延遲,從而提高應用程序的性能和用戶體驗。

Intel® Intrinsics Guide
thumbnail

該網站是Intel® Intrinsics Guide的官方網站,提供了一個交互式的界面,用於查找和了解Intel的SIMD (Single Instruction, Multiple Data) 和SIMD-like指令集。這個指南包括了從MMX到最新的AVX-512和AMX家族的指令集,並對每個指令集的指令提供了詳細的解釋和資訊,包括指令的效果、語法和範例代碼。指南更新至2023年5月10日的版本3.6.6【48†(來源)】。

該指南在最近的幾個版本中作了很多更新。例如,在版本3.6.6中,它添加了對PRFCHW、AMX-COMPLEX的指令,並將F16C移動到AVXFamily。在版本3.6.5中,它添加了64個reduce_ep系列的指令,並為Sapphire Rapids添加了新的吞吐量和延遲數據。在版本3.6.4中,它添加了對AVX512_FP16的SVML指令,以及多個新的AMX和AVX指令。這些更新顯示了Intel持續增加和改進其指令集,以支持更多的操作和硬件特性【52†(來源)】。

這個指南對於熟悉Intel硬件和想要了解或使用Intel SIMD指令集的開發人員來說非常有用。它提供了一個集中的資源,開發人員可以在其中找到有關特定指令的資訊,並且可以很容易地搜索和過濾以找到他們需要的指令。

[請益] 海外期貨符合技術訊號自動提醒方法請益 - 看板 Stock - 批踢踢實業坊
Introducing runes
thumbnail

In 2019, Svelte 3 turned JavaScript into a reactive language. Svelte is a web UI framework that uses a compiler to turn declarative component code

Runes are symbols that influence the Svelte compiler. Whereas Svelte today uses let, =, the export keyword and the $: label to mean specific things, runes use function syntax to achieve the same things and more.

GitHub - leafac/kill-the-newsletter: Convert email newsletters into Atom feeds
thumbnail

Convert email newsletters into Atom feeds. Contribute to leafac/kill-the-newsletter development by creating an account on GitHub.

GitHub - excalidraw/excalidraw: Virtual whiteboard for sketching hand-drawn like diagrams

一款轻量的手绘风格电子白板在线应用,无论是 Windows / macOS / linux,甚至是手机,打开浏览器就能使用,能简单地画出美观漂亮的流程图、示意图和开发架构图等常用图片,也可以作为会议画板使用,不仅是一款优秀的画图应用,也是一款自由便捷的电子白板应用。

Coolify | Coolify
thumbnail

Coolify is an all-in one PaaS that helps you to self-host your own applications, databases or services (like Wordpress, Plausible Analytics, Ghost) without managing your servers, also known as an open-source & self-hostable Heroku / Netlify alternative.

为什么不要加入创业公司 - Yifei's Notes

大綱:

  1. 創業公司存活率低: 92%的創業公司三年內倒閉。
  2. 精益創業的弊端: 小步迭代可能無法達到預期效果。
  3. 小公司沟通效率低: 由于技术和政治原因,通信效率较低。
  4. 技術混亂: 缺少标准和最佳实践。
  5. 个人成长限制: 小公司可能限制个人成长和技术进步。
  6. 公司成长挑战: 多数创业公司会遭遇成长瓶颈。
  7. 脉脉上的总结: 公司管理体系不完善,福利差,工作界限不明确。

結論: 文章指出了加入創業公司的多個缺點和挑戰,建議在选择加入创业公司时应谨慎考虑【6†source】.

凱基證券攜手 Red Hat 推動核心系統轉型 首選業界領先的 Red Hat OpenShift 混合雲應用平台 – CIO Taiwan
thumbnail

考量公司的長遠發展,凱基證券決定啟動證券核心系統轉型。在確保轉型專案能成功,同時為日後推動混合雲、多雲策略等做好準備,選定基於 Kubernetes 的業界領先 Red Hat OpenShift 混合雲應用平台,維持市場領導地位。 因應創新金融科技的蓬勃發展,加上行動裝置已成為

【新版】地熱的現況與挑戰|宜蘭清水、大屯山先導電廠(我們的島 第1226集 2023-10-16)
thumbnail
揭露FTX帝國「二把手」:程式設計天才Gary Wang的榮光與殞落 | 動區動趨-最具影響力的區塊鏈新聞媒體
thumbnail
熊貓撐的住嗎?【創業思維】店家與外送員的居安思危 /從母公司Delivery Hero ,將出售東南亞部分外送業務,來看Foodpabnda台灣未來可能的危機與風險
thumbnail
GitHub - sky-mirror/libPollIO

The library I wrote in skymirror.

3次免費諮商,然後呢?推動「求助常態化」,擴大年輕世代心理健康支持網的新挑戰 - 報導者 The Reporter
thumbnail

衛福部「年輕族群心理健康支持方案」8月起補助15~30歲民眾3次免費諮商,但半個月後名額就快用完、得緊急加碼。第一線心理師和地方政府遭遇什麼挑戰?被篩選出的年輕族群高風險個案,未來有何資源和方法能承接?

Rock Pi SATA HAT幫你的Raspberry Pi 4、Rock Pi 4加裝5顆SATA硬碟 | T客邦
thumbnail

Rock Pi SATA HAT是款能相容於Raspberry Pi 4或Rock Pi 4的硬碟擴充套件,最多能支援同時連接5顆SATA傳統硬碟或固態硬碟,具有高達803MB/s的傳輸效能,並可搭配控制面板與專屬機殼,大幅提升資料儲存總容量。

Intel N100: A Challenge to ARM - bret.dk
thumbnail

The Intel N100 (and N200) seem to be Intel's attempt at trying to muscle into the market that high-end ARM SoCs look to have cornered. With the Rockchip

攜程基於 DPDK 的高性能四層負載均衡實踐
thumbnail

本文由攜程資深技術支持工程師 Yellowsea 撰寫,主要講述了如何利用開源的 DPVS(基於 DPDK 的 LVS)構建攜程的高性能四層軟件負載均衡 TDLB (Trip.com Dpdk LoadBalancer)。以下是文章的簡介:

  1. 背景:

    • 在攜程的服務流量接入架構中,四層負載均衡扮演著關鍵角色。隨著業務流量的不斷增長,原硬件四層負載均衡面臨成本高、採購周期長和 HA 工作模式等問題,因此攜程急需在開源社區中尋找高性能四層負載均衡軟件化的解決方案【24†source】。
  2. TDLB 高性能實現:

    • 文章探討了 TDLB 如何通過 DPDK 解決傳統 LVS 負載均衡的性能瓶頸。利用 DPDK 的 kernel bypass 設計,避免了内核态与用户态的切换耗时问题,提升了处理数据包时 cache 的命中率。
    • 此外,TDLB 在会话无锁方面作了优化,通过 percore 的会话设计避免了 core 与 core 之间的资源竞争,保证了入向流量与出向流量分配至同一个 core【24†source】。
  3. 用戶源 IP 透傳:

    • 文章也探讨了两种主要的用户源 IP 透传方式:TOA 和 ProxyProtocol,这两种方法分别需要在服务器上挂载 TOA 相应的 kernel module 或在服务的应用层提供 ProxyProtocol 的支持【24†source】。

本文適合對 DPDK 和負載均衡有興趣,並希望了解如何在实际业务中应用 DPDK 以提升四層負载均衡性能的讀者。透過閱讀本文,讀者可以了解到 DPDK 在实际业务中的应用,以及如何解决传统 LVS 负载均衡的性能瓶颈。

How branches influence the performance of your code and what can you do about it? - Johnny's Software Lab
thumbnail

In this articles we investigate on how branches influence the performance of the code and what can we do to improve the speed of our branchfull code.文章主要探討了程式碼中分支結構對性能的影響,以及開發人員如何優化這些分支以提高效能。摘要如下:

  1. 摘要:

    • 程式碼中的分支結構可能會導致預測失敗,進而影響程序的性能。分支預測失敗的成本可能會很高,特別是在迴圈和函數呼叫中。
    • 分析工具能幫助開發人員識別和優化分支,從而提高程式碼的性能。
  2. 結論:

    • 通過瞭解和優化分支結構,開發人員能夠縮短執行時間,提高程式的效率。有效的分支預測和優化是達成高性能程式碼的關鍵。
  3. 適合閱讀的對象:

    • 此文章適合具有一定程式設計經驗,並且希望了解如何優化程式碼性能的開發人員閱讀。透過瞭解分支結構的工作原理以及如何優化它們,開發人員能夠撰寫出更高效的程式碼。

這篇文章提供了實用的資訊和策略,對於希望提高程式碼效能的開發人員來說,值得一讀。

828ns – A Legacy of Low Latency | The Technology Evangelist
thumbnail

該博客文章探討了電子交易中低延遲的重要性及其技術演變,尤其是Solarflare通過其硬件和軟件解決方案如何實現低延遲。以下是文章的主要內容及其他相關信息的總結:

  1. 電子交易與低延遲

    • 電子交易行業中,時間和金錢之間有直接的聯繫。十年前,作者開始向華爾街交易員銷售10GbE網絡接口卡(NIC),當時交易員通常會分享微秒(百萬分之一秒)改善交易所帶來的價值。現在,這些交易員已經在測量奈秒(十億分之一秒)上的增益【130†(source)】。
  2. Solarflare的技術演變

    • Solarflare通過其Onload軟件加速堆棧領先市場,專注於加速伺服器端的UDP/TCP網絡用於電子交易。每一代新的10GbE網絡適配器都進一步減少了網絡延遲,同時也減少了抖動。這些進步主要源於硬件的改進,但Onload堆棧的許多重要增強也對整個系統性能的提升作出了重大貢獻【130†(source)】。
  3. TCPDirect技術

    • 五年前,Solarflare重新考慮了Onload中的TCP/UDP網絡堆棧,並確定如果開發人員願意使用新的C語言應用程序編程接口(API),則有可能實現額外的35-50%的性能增益。這個新API從一開始就專注於性能,並且只實現了完整BSD Sockets API的一個子集。每個API調用都經過高度優化以提供最佳性能【130†(source)】。
  4. 低延遲技術的一般應用

    • 低延遲網絡通常指在執行交易與確認交易之間有最小延遲的網絡。通過使用專用的硬件和軟件,例如場可編程閘陣列(FPGAs)和應用特定集成電路(ASICs),以及高速光纖電纜來實現這一目標【134†(source)】。
    • 另外,通過共住、連接到直接交換源、減少網絡交換機和實施基於FPGA的硬件,依賴延遲的公司可以減少刻度至交易延遲【135†(source)】。
  5. 低延遲交易的競爭優勢

    • 低延遲交易是一個高度競爭的賽跑,交易公司通過擁有最快的基礎設施,並且更重要的是,將其操作定位得越接近交易源,以比其他交易員更快地獲取信息【136†(source)】。
    • 低延遲網絡技術被電子交易應用程序用於提供更好的執行率並允許更多的在線處理,例如使用FIX協議實施電子交易【137†(source)】。

這篇博客以及其他相關資訊展示了低延遲技術在電子交易中的重要性,以及如何通過硬件和軟件創新來實現低延遲,以保持在高競爭的交易市場中保持競爭力。

FAQ:Tuning the run-time characteristics of MPI TCP communications
1024cores - Queue Catalog

該網站是專門介紹鎖無關算法中的隊列的目錄。它提供了關於多種鎖無關隊列的信息,並分類為SPSC (單生產者單消費者)、MPSC (多生產者單消費者)、SPMC (單生產者多消費者)和MPMC (多生產者多消費者)。您可以在這個網站中查看有關不同類型隊列的詳細信息【74†(來源)】。

kubernetes的clusterip机制调研及macvlan网络下的clusterip坑解决方案 - 知乎
thumbnail

这篇文章主要讨论了设计借贷宝底层k8s架构时面临的一些挑战和解决方案,包括使用macvlan网络插件、clusterip的实现机制以及如何让管理Pod正常运行的问题。以下是摘要、结论和适合阅读的客群:

摘要:
本文探讨了在设计借贷宝底层k8s架构时遇到的一些问题,特别是关于如何使用macvlan网络插件以及如何处理管理Pod的网络访问问题。文章提供了关于clusterip的实现机制和macvlan网络的限制的详细分析,并提出了解决方案,包括使用hostnetwork和multus-cni插件。

结论:
在解决问题1时,文章强调了clusterip的实现机制,并讨论了macvlan网络为何不能直接使用clusterip。虽然可以对macvlan进行改造以实现这一目标,但改造过程复杂,不划算。文章建议使用hostnetwork来解决管理Pod的网络访问问题,因为大部分管理Pod可以通过hostnetwork正常运行,而不需要macvlan网络。

在解决问题2和问题3时,文章提供了两种解决方案,一是将部分Node标记为master,采用cluster network,另一是使用multus-cni插件创建双网卡配置,其中一个网卡使用macvlan网络,另一个使用cluster network。作者倾向于第一种解决方案,因为它不需要双网卡配置,并且更符合他们的需求。

适合阅读的客群:
本文适合那些对k8s架构和网络配置有一定了解的技术人员,特别是对macvlan网络和clusterip实现机制感兴趣的读者。文章提供了详细的技术分析和解决方案,适合深入研究和实践相关领域的专业人士。

腾讯 13 年,我所总结的Code Review终极大法
thumbnail

一文梳理Code Review方法与实践

Algorithms for Modern Hardware - Algorithmica

該網站的名字是 "Algorithmica",主要是關於一本即將出版的高性能計算書籍,名為“Algorithms for Modern Hardware”【6†(來源)】。以下是根據您所提供網站連結,分析該網站的簡介、內容大綱、難易度、適合的閱讀群體以及可能的收穫。

內容大綱:

  1. 現代硬件
    • 介紹了1960年代的超級計算機的限制,並解釋了微芯片的發展如何助力計算機硬件的演進,特別是微芯片的製造過程【10†(來源)】。
  2. 複雜性模型
    • 討論了計算複雜性的基本概念和古典複雜性理論,包括CPU的基本操作和如何估算程序的實際運行時間【16†(來源)】。

難易度:

  • 內容涵蓋了從硬件的物理層面到算法複雜性的抽象概念,這要求讀者有一定的電腦科學和電子工程背景知識。特定章節如微芯片的製造和複雜性模型的討論可能會對缺乏相關背景的讀者來說相對複雜【10†(來源)】【16†(來源)】。

適合閱讀的客群:

  • 針對性能工程師、實用算法研究人員以及已完成高級算法課程的本科計算機科學學生,希望學習更多實用方法來加速程序的運行【6†(來源)】。

可能獲得的收穫:

  • 讀者可以學習到現代硬件的發展歷史、微芯片的製造技術、以及計算複雜性的基本概念和分析方法。這些知識對於理解和優化算法以及程序性能可能是非常有價值的【10†(來源)】【16†(來源)】。
理解 gRPC 协议
iximiuz Labs - Learning-by-Doing Platform to master Cloud Native craft
thumbnail

這個網站是一個學習平台,專注於雲原生技術。它提供以下幾點:

  • Linux、容器、Kubernetes和編程的課程。
  • 在瀏覽器中實驗特定的遊樂場。
  • 加入一個好奇的學習者社區,互相幫助。
  • 提供預配置的Go,Node.js等開發環境。
  • 有關Kubernetes、容器、Linux、網絡等的沙盒環境。

這個網站可能對想要學習或提高雲原生技術知識的人很有用,特別是在容器和Kubernetes的領域​。

GitHub - pi-hole/pi-hole: A black hole for Internet advertisements
thumbnail

Pi-hole® 是一個DNS沉默洞,可以保護您的設備免受不必要的內容,無需安裝任何客戶端軟件。

簡單安裝:我們的對話框會引導您完成不到十分鐘的簡單安裝過程
堅決:阻止非瀏覽器位置的內容,如充滿廣告的移動應用程序和智能電視
響應:通過緩存DNS查詢,無縫提高日常瀏覽體驗
輕量級:在最低的硬件和軟件要求下平穩運行
堅固:具有經過質量保證以實現互操作性的命令行界面
富有洞察力:具有美麗響應式Web界面儀表板,可查看和控制您的Pi-hole
多功能:可以選擇性地充當DHCP服務器,確保自動保護所有設備
可擴展:在安裝在服務器級硬件上時,能夠處理數億次查詢
現代:在IPv4和IPv6上都可以阻止廣告
免費:開源軟件,有助於確保您完全掌控您的隱私。

对抗软件复杂度的战争 - 阿里云云栖号 - OSCHINA - 中文开源技术交流社区

一、何为研发效能? 当我们谈研发效能的时候,我们在谈些什么?这个议题被抛出来,有人讨论,是因为存在问题,问题就在于实际的研发效率,已经远低于预期了。企业初创的时候,一个想法从形成到上线,一个人花两个...

Linux 中如何安全地抹去磁盘数据?
thumbnail
培養解決問題的能力:六頂思考帽,得出新解方、突破目前窘境
thumbnail

六頂思考帽是一種思考工具,用來促進不同思考角度的探討。每個思考帽代表一種不同的思考方式:

白帽:事實和資訊,純粹的數據。
紅帽:情感和直覺,情感上的反應。
黑帽:批判性思考,尋找問題和風險。
黃帽:樂觀和正面思考,看好的一面。
綠帽:創造性思考,新點子和解決方案。
藍帽:控制和組織思考過程,引導討論。
使用六頂思考帽可以幫助團隊更全面地分析問題,提高決策質量。

GitHub - sethcottle/littlelink: A lightweight DIY alternative to services like Linktree.
thumbnail

A lightweight DIY alternative to services like Linktree. - GitHub - sethcottle/littlelink: A lightweight DIY alternative to services like Linktree.

7 types of difficult coworkers and how to deal with them
thumbnail

Lessons from a Meta tech lead and Staff Engineer

Argon EON Pi NAS – Argon 40 Website Store
thumbnail

Build Your Own Network Attached Storage (BYO-NAS) Takes advantage of the natural heat conductivity and dissipation of the aluminum Augmented the built-in controllable fan to cool down both the Raspberry Pi and hard disks Multi-function power button to allow for seamless integration with the case Programmable OLED Displ

Alerting: The Do’s and Don’ts for Effective Observability | by Adso | Medium | Medium
thumbnail

Here is a brief story about how you can use the Do’s and Don’ts of alerting for your team or company.

Python 3.12:一个被人忽略的史诗级版本 | Manjusaka
thumbnail

理解我这一个观点,我们来说一下 Python 的几大痛点:

  • Python 的可调式性,可观测性问题。历史上 Python 中做 Cost 的消耗极大,同时没有足够的手段可以从旁路去观察 Python 的运行时行为
  • Python GIL 问题,这个老生长谈了,不多说
  • Python 的 C API/ABI 问题,之前暴露的 C API/ABI 通常和 CPython VM 实现细节耦合,导致跨版本兼容性会是一个问题

而这样一些问题,Python 3.12 上都有了极大的进步

  • PEP 669, GH-96143 极大提升了 Python 的可观测性,可调式性
  • PEP 684, A Per-Interpreter GIL, 提升 Python 进程内性能,为后续的 non-GIL 打下了良好的基础
  • PEP 697 全新的 C API,进一步解耦 API/ABI 与 CPython VM 实现细节的耦合
DPDK 的基本原理、學習路線總結
thumbnail

文章的主要內容是關於 Intel® DPDK (Data Plane Development Kit) 的基本原理和學習路線的總結。以下是對文章的摘要:

  1. DPDK 簡介:

    • DPDK 是 Intel 提供的數據平面開發工具集,主要為 Intel 架構下的用戶空間高效的數據包處理提供庫函數和驅動的支持。
    • 透過 DPDK, 程序能夠在用戶空間上利用 DPDK 提供的數據平面庫來收發數據包,繞過了 Linux 內核協議棧對數據包處理過程,從而提高數據處理效率【14†(來源)】。
  2. DPDK 技術特點:

    • UIO (Linux Userspace I/O) 使得網卡驅動能在用戶空間運行,降低了報文在用戶空間和應用空間的多次拷貝,並能顯著提升虛擬化網絡設備的數據採集效率【14†(來源)】。
  3. 用戶空間輪詢模式(PMD):

    • DPDK 的用戶空間輪詢模式驅動使得應用程序不需經過 Linux 內核即可訪問網絡設備卡,從而省去了內核到應用層的數據包拷貝過程,提高了數據處理效率【18†(來源)】。
  4. DPDK 的核心思想:

    • 用戶態模式下的 PMD Driver 能夠去除中斷影響,減少操作系統內核的開銷,消除 IO 吞吐瓶頸,並在用戶態下的軟件崩潰時不會影響系統的穩定性【18†(來源)】。
  5. 學習路線:

    • 文章也提及了 DPDK 的學習路線,但並未提供具體的學習資源或建議。
  6. 結論:

    • 通過理解和應用 DPDK,開發人員可以在網絡應用中實現高性能的數據包處理,提高數據處理效率和系統性能。

這篇文章非常適合對 DPDK 感興趣,並希望了解其基本原理和技術特點的讀者。

使用solarflare网卡降低网络IO延迟 - 知乎

这篇文章主要探讨了关于Linux网络IO低延迟方案,特别是针对solarflare高性能网卡的使用经验。文章提到了三种与solarflare相关的kernel bypass软件解决方案:Onload、ef_vi和Tcpdirect,并分享了对它们性能的测试结果和个人使用感受。

作者提到了对这些解决方案进行了实际测试,特别是通过实现一个贴合实际的echo测试来测量延迟。在测试中,作者发现最佳的延迟约为960ns +/- 90ns,使用了最新的X2系列网卡、ef_vi接收UDP、Tcpdirect发送TCP,并采用了屏蔽中断的内核优化。

此外,文章还简要谈到了对三个不同的stack的使用感受:

  1. Onload:易用性强,适合新手入门,性能相对较好。
  2. ef_vi:提供最佳性能,但API较复杂,适合专业用户。
  3. Tcpdirect:基于ef_vi,提供上层协议支持,适合UDP发送端和整个TCP使用。

最后,文章提到了如何测量网卡到网卡的延迟,包括使用交换机镜像、tap设备、本地抓包工具等不同方法,并详细讨论了各种本地记录网络包时间戳的方法,包括tcpdump、onload_tcpdump、solar_capture、通过ef_vi/tcpdirect API获取网卡时间戳、sfptpd等。

总的来说,这篇文章提供了关于Linux网络IO低延迟方案以及solarflare网卡的使用经验和测试结果,对于需要优化网络性能的开发者和工程师可能会有一定参考价值。

Optimizing TCP for high WAN throughput while preserving low latency
thumbnail

在優化TCP以實現高通量和低延遲方面,Cloudflare的博客文章提供了非常詳盡的解釋和策略。以下是文章的主要內容:

  1. 性能調優

    • Cloudflare的工程師通過監視數百個流量參數來不斷改善他們的服務,其中HTTP請求延遲是他們密切關注的核心數字。他們將延遲峰值視為需要修復的錯誤,例如在2017年,他們通過優化TCP接受隊列來改善等待接受的TCP套接字的整體延遲。
  2. 通過調整 tcp_rmem 解決延遲峰值

    • 在2015年,他們在處理HTTP請求時發現了延遲峰值。當時的解決方案是將 tcp_rmem 設置為4 MiB,以最小化內核在TCP崩潰處理上的時間花費。但這種設置限制了高延遲連接上的TCP通量【122†source】。
  3. TCP接收窗口和 tcp_adv_win_scale

    • TCP接收窗口是在任何時候發送者應傳輸的未確認用戶有效載荷字節的最大數量。接收窗口的大小會在TCP會話期間上下波動。 tcp_adv_win_scale 是用於解釋接收窗口中的用戶有效載荷字節所需的額外內存的值。接收窗口的值會根據接收緩衝區中的可用內存量而變化【122†source】。
  4. Linux自動調整

    • Linux自動調整是Linux內核中的邏輯,它根據實際的封包處理情況來調整緩衝區大小限制和接收窗口。它考慮了多種因素,包括TCP會話的RTT,L7讀取速率和可用的主機內存量。自動調整可以通過跟踪本地應用程序從接收隊列中讀取數據的速率以及會話RTT,來自動增加緩衝區和接收窗口,直到應用程序層或網絡瓶頸鏈接成為通量限制因素為止【122†source】。

這篇文章通過解釋TCP的核心機制和Linux的自動調整功能,以及Cloudflare如何解決特定的延遲問題,提供了關於如何在保持低延遲的同時實現高通量的深入見解。該文章對於有興趣理解和優化TCP性能的讀者來說是一個很好的資源。

Are there good examples of SPMC queues?

該網頁是一個關於SPMC (Single Producer, Multiple Consumer) 隊列的討論,由Rajiv Kurian於2013年12月23日開始。他描述了一個用例,其中一個線程讀取網絡字節並生成工作,而多個工作線程實際完成工作。他首先嘗試使用多個SPSC (Single Producer, Single Consumer) 環形緩衝區來分發工作,但這導致了不平衡的隊列,一些工作線程被餓死,而另一些則有太多工作。

他考慮了以下幾個選項:

  1. 使用SPMC環形緩衝區,工作線程競爭獲得環形緩衝區上的一個槽,然後完成他們的工作。
  2. 使用某種工作請求設計,特別是在大多數工作線程繁忙時沒有爭用的情況下,這似乎是一個不錯的模式。
  3. 建立請求的成本模型,例如,對於圖像處理應用程序,可以在啟動時運行一個階段,檢查每個過濾器需要多長時間,並根據不同大小的圖像建立成本模型。

另一個參與者提到了“經典”工作竊取技術,並建議考慮使用高效的SPMC隊列,因為它將更簡單。他還提供了一個鏈接,指向1024核心網站上有界MPMC (Multiple Producer, Multiple Consumer) 隊列的討論,並建議從中移除CAS (Compare-and-Swap) 操作,因為只有一個生產者。他還提到了Chris的修改,儘管該鏈接無法直接訪問,但它可能是基於另一個討論的【62†(來源)】。

你可以通過這個鏈接訪問1024核心網站上有界MPMC隊列的討論【66†(來源)】。在這個討論中,你可能會找到一些與SPMC隊列相關的實用信息和範例。

x86/x64 SIMD Instruction List (SSE to AVX512)

該網站為開發人員提供了一個非常詳細和實用的x86/x64 SIMD指令參考資源,使他們能夠找到正確的指令名稱,並在編碼之前參考手冊。這些資料對於理解和使用SIMD指令非常有用,並且可以幫助開發人員編寫更有效率的代碼。

User:Glorat/Using futures to replicate index funds - Bogleheads

該網頁是由Bogleheads社區的一位用戶Glorat撰寫,主要介紹了如何使用期貨來模擬指數基金的投資策略,特別針對非美國投資者。以下是網頁的主要內容摘要:

投資策略的前提條件:

  1. 沒有資本利得稅
  2. 買賣期貨時沒有其他稅相關的額外負擔
  3. 有能夠交易期貨和期貨價差的經紀商
  4. 由經紀商提供保證金貸款設施
  5. 想要投資相當於超過10,000美元的單位
  6. 瞭解期貨交易

投資策略:

此策略主要目的是通過Micro E-Mini Futures投資於以下美國股票指數,以避免UCITS基金較高的總費用率(TER)和15-30%的美國持股股息稅:

  1. S&P 500
  2. Nasdaq 100
  3. Russell 2000
  4. Dow Jones Industrial Average

對於Bogleheads社區的用戶,S&P 500是最相關的,因為它是一個基於大市值的廣泛指數,覆蓋了大部分美國股票市場。而Russell 2000則是用來填補中小市值股票的。但是,由於所涉及的最低投資金額,試圖以平衡的方式實現按市值加權的整個美國市場是非常困難的,因此很可能只會選擇S&P 500【28†(來源)】。

此投資策略與非美國Bogleheads投資哲學有所不同,應僅由具有期貨交易知識和專業知識的投資者使用。在進行此策略之前,投資者需要對期貨交易有基本的理解,並應意識到交易期貨和期貨價差有一定的風險,包括意外使用保證金的風險,以及在某些實體(例如經紀商)破產時保險或保護水平不清楚的風險【28†(來源)】。

巧用 array 處理 tags - HackMD
thumbnail

該網頁介紹了在 PostgreSQL 中使用 array 處理 tags 的方法。首先說明傳統方法,建立三個表格用於存儲標籤、視頻和視頻標籤關係,然後提供了使用 array 的方法,這方法只需建立兩個表格,將視頻標籤關係表格合併到視頻表格,以精簡查詢並提高效率​。

該文章中提到的 array 類型和 array_agg() 函數,以及 @> (包含)運算符和 unnest() 函數,都是 PostgreSQL 特有的功能。這些功能允許用戶以更高效和簡潔的方式處理和查詢含有標籤的資料​。

GIN(Generalized Inverted Index)是 PostgreSQL 中提供的一種索引類型,專為處理包含多值元素(例如陣列)的列而設計。它可以快速地處理包含、相等和其他陣列相關的操作,這在處理大型多值資料時非常有用。在該文章中,GIN 索引被用來加速對陣列列的查詢操作​。

HomePod播放YouTube Music教學,教你設定用Siri快速播歌技巧 - 瘋先生
thumbnail

原本要透過 HomePod 或 HomePod mini 播放第三方音樂,都只能夠利用 iPhone、iPad 或 Mac 以 AirPlay 音樂到 HomePod 才能播音樂,且 HomePod(mini)預設 Siri 聲控主要支援 Apple Music,直到 KKBOX 率先支援

Best NAS Storage, RAID storage, Data Storage Master Online & More

TerraMaster is a professional brand that provides High-Performance data storage solutions - NAS, DAS, RAID storage, and more online in more than 40 countries.

ASUSTOR 華芸 FS6706T (6Bay/Intel/4G) 我的創作基地系列 6Bay SSD NAS網路儲存伺服器

All Flash m.2 NAS

Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X

大綱:

  1. 優化手冊: 提供x86和x86-64微處理器代碼優化的全面指南。
  2. 向量類庫: 簡化現代CPU向量指令的使用,無需組裝語言。
  3. 文件轉換器: 支持多種格式的對象文件轉換,並附帶一個高效的反編譯器。
  4. 子程序庫: 包含用組裝語言編碼的優化子程序,可從高級語言調用。
  5. ForwardCom: 為高性能微處理器提供開放標準指令集的提案和討論【12†source】.

結論: 此網站是為高級程序員和編譯器製作者提供的軟件優化資源,涵蓋了從代碼優化到指令集架構的多個方面。

💰 My Frugal Indie Dev Startup Stack
thumbnail

My indie developer software stack for building Waitlist with free and cheap saas products. Learn how I built referral marketing software without spending much.

How Growing Tech Engineers Enables Growing Yourself as a Leader
thumbnail

要成長為領導者,專注於只有你能做的事,例如規劃和技術方向。避免成為瓶頸,例如單獨擁有複雜功能開發或團隊流程。通過指導和委派,幫助團隊成員提升技能,這樣他們可以獨立解決問題,使你有更多時間專注於更大的技術問題和領導職責​

One of the biggest challenges Troutt faced during her career was realising that she had created a bottleneck for her team, and that it was holding her back and holding her teams back too. The solution she applied was to help her team build the skills and expertise needed to carry out what she was previously single-handedly owning (like complex feature dev, team processes, platform release coordination, etc) so that she wasn’t a bottleneck anymore.

As a team leader, she learned to help other engineers grow to become leaders as well, in order for them to be able to plan and implement features independently, to triage production issues, and to be able to think and act without her.

GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.

Explain complex systems using visuals and simple terms. Help you prepare for system design interviews. - GitHub - ByteByteGoHq/system-design-101: Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.