LINUX下的幾種CPU讓渡策略

2021-09-26 19:13:55 字數 756 閱讀 3580

cpu作為伺服器重要的計算資源,因為其資源的稀缺性,所以其對所有程式來說都是彌足寶貴的;尤其是對效能要求極高的應用程式而言,如何更好的利用cpu將是 提公升效能的乙個關鍵因素。

本文將**幾種應用程式讓渡cpu的策略,以此來研究如何讓cpu更好的被不同用途的應用程式或者相同協作的一組應用程式使用,從而更好的使用cpu這種寶貴的資源。

cpu_relax

cpu_relax在linux核心中使用較多,其定義如下:

static inline void rep_nop(void)

其中,asm volatile(「rep; nop」 ::: 「memory」); 大部分情況下等同於asm volatile(「pause」 ::: 「memory」); 其作用就是讓cpu暫停工作,但是並不會讓渡cpu到其他的程序,而只會暫停工作一段時間,cpu會繼續在當前的程序進行忙等待。

為什麼沒有直接使用pause來代替req; nop指令,應該還是基於向前相容的原因。

rep; nop is indeed the same as the pause instruction (opcode f390). it might be used for assemblers which don』t support the pause instruction yet. on previous processors, this simply did nothing, just like nop

linux下讓程序執行在指定的cpu上

最近負責的svr壓力比較大,業務邏輯有點複雜,能優化的地方已經全部優化了,目前每秒3k次,cpu負載還是比較高 top看一下,4核的cpu負載不是太均衡,打算考慮一下將業務程序指定到3個cpu上執行,另外乙個cpu專門負責處理網路收發包 打算嘗試一下,如果還是不行,再過段時間,訪問量再增加的話,就要...

linux下讓程序執行在指定的cpu上

最近負責的svr壓力比較大,業務邏輯有點複雜,能優化的地方已經全部優化了,目前每秒3k次,cpu負載還是比較高 top看一下,4核的cpu負載不是太均衡,打算考慮一下將業務程序指定到3個cpu上執行,另外乙個cpu專門負責處理網路收發包 打算嘗試一下,如果還是不行,再過段時間,訪問量再增加的話,就要...

linux下讓程序執行在指定的cpu上

收藏 最近負責的svr壓力比較大,業務邏輯有點複雜,能優化的地方已經全部優化了,目前每秒3k次,cpu負載還是比較高 top看一下,4核的cpu負載不是太均衡,打算考慮一下將業務程序指定到3個cpu上執行,另外乙個cpu專門負責處理網路收發包 打算嘗試一下,如果還是不行,再過段時間,訪問量再增加的話...