【正文】
2 3分配給PID為2345的進(jìn)程: taskset cp 1,2,3 2345但我嘗試沒奏效,于是我關(guān)掉了MySQL,并用taskset將它啟動(dòng): taskset c 1,2,3 /etc/對(duì)于其他進(jìn)程,也可如此處理(nginx除外,詳見下文)。二、配置nginx綁定CPU剛才說nginx除外,是因?yàn)閚ginx提供了更精確的控制。這是用來配置nginx啟動(dòng)幾個(gè)工作進(jìn)程的,默認(rèn)為1。我做了如下配置:worker_processes 3。這里0010 0100 1000是掩碼,分別代表第4顆cpu核心。三、刨根問底1. 如果自己寫代碼,要把進(jìn)程綁定到CPU,該怎么做?可以用sched_setaffinity函數(shù)。2. 如果父進(jìn)程設(shè)置了affinity,之后其創(chuàng)建的子進(jìn)程是否會(huì)有同樣的屬性?我發(fā)現(xiàn)子進(jìn)程確實(shí)繼承了父進(jìn)程的affinity屬性。* 個(gè)人感覺,Windows系統(tǒng)中翻譯的“處理器關(guān)系”比“CPU親和力”容易理解點(diǎn)兒—————–進(jìn)行了這樣的修改后,即使系統(tǒng)負(fù)載達(dá)到3以上,(有40多次查詢)依然順暢;,響應(yīng)就很慢了。 operate on an existing PID and not launch a new task c, cpulist a list of processors instead of a bitmask. separated ma, ranges. display usage information and exit V, version根據(jù)紅帽的說法 RHEL5有一個(gè)很強(qiáng)壯的CPU調(diào)度機(jī)制,RHEL6就更強(qiáng)壯了,所以看起來跑在LINUX下面的應(yīng)用應(yīng)該都不用去管該用哪個(gè)CPU。不過CPU0負(fù)載還是最大的。下面是一個(gè)操作的例子:postgres 0 May05 ? 00:00:00 /app/pgsql/bin/postgres D /database/pgdata p 1921[rootdevelop1 ~] taskset pc 6457pid 6457’s current affinity list: 03這個(gè)進(jìn)程目前是默認(rèn)與03 這4個(gè)核心親和的。[rootdevelop1 ~] taskset pc