# 2025q1 Homework1 (ideas) contributed by < `mincch` > [Linux 核心專題: 高性能網頁伺服器](https://hackmd.io/@sysprog/HkyVuh0NR) 引入 CMWQ 減少創建大量執行緒的開銷,提高伺服器的效率。新增 Directory Listing 功能:讓使用者可以直接瀏覽伺服器上的目錄內容。 引入 Content Cache : 減少重複讀取相同目錄的開銷,提高效能。 RCU : 優化 Directory Cache,因為讀取多、寫入少,所以使用 RCU 來加速讀取。 引入 Timer 機制釋放閒置的快取內容,防止記憶體佔用過大。 使用 Priority Queue 管理 Timer 主動刪除超時的連線,確保伺服器的穩定性。 如果有大量連線需求,會導致需要花費大量時間來創建執行緒,所以引入CMWQ CMWQ是什麼? 他會先建立 thread,然後根據 CPU 負載來分配工作。Server 將請求分配給 CMWQ,而不是直接分配給某個 thread。這樣可以減少 thread 的創建與刪除成本,提高效能。 增加directory listing,允許用戶透過瀏覽器直接查看目錄內容 而在檔案的讀取佔據了很大的成本,所以使用cache暫存目錄的內容,下次如果有用戶請求一樣的目錄就不用再一個個回傳,直接用cache就好 RCU 用於 directory cache ,讀多寫少,且不介意讀到舊資料 引入Timer: 釋放閒置的目錄或是快取 使用priority queue 實做 timer 管理主動刪除超時的連線 問題:測試情境過於理想,都只重複存取同一網站,只有第一個存取需要花最多時間,接下來的存取都是用cache,但是現實中這種情況基本上不會發生,應測試多個發送對多個url --- [Linux 核心專題: 打造具備網路連線的精簡虛擬機器](https://hackmd.io/@sysprog/ryG0h25I0) 在KVM基礎上建構精簡可以運作linux核心的虛擬機器,藉由VirtIO具備電腦網路連線的能力 KVM是什麼? VirtIO是什麼? 虛擬機器可以分為 System VM:提供完整的作業系統(OS)虛擬化,能夠執行完整的 OS(例如 VirtualBox、VMware),提供硬體虛擬化技術。 Process VM:只提供一個獨立的process執行環境,例如 JVM(Java Virtual Machine)。 KVM kernel based Virtual mackine 是linux核心中的虛擬化模組 提供API讓user space呼叫 : CPU虛擬化,記憶體虛擬化... 搭配emulator對周邊裝置的虛擬化及提供使用者介面 KVM-host是基於linux的KVM實現的精簡hypervisor,要讓他具備網路連線的能力 VIrtIO: 一種標準化的 I/O 設備介面,用於虛擬機器(VM)存取虛擬設備,允許 Guest OS 直接存取 Host 設備,提高效能,是一種類似 PCI device,支援網路、磁碟、記憶體共享等功能。 Virtqueue 負責在 VM(Guest OS)和 Host 之間進行資料傳輸,Guest OS 會將 I/O 請求放入 Virtqueue,由 Host 來處理請求。 TUN/TAP : linux 提供的虛擬網路環境 --- [Linux 核心專題: 虛擬無線網路裝置驅動程式 ](https://hackmd.io/@sysprog/rJ-LF4nNC) --- [Linux 核心專題: 虛擬攝影機裝置 ](https://hackmd.io/@sysprog/HJBxRsRr0)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up