Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。 Linux进程包括核心进程和普通进程,把普通进程绑定到Linux系统CPU核中运行,那么普通进程就成了核心进程。本文就以Ubuntu为例子来介绍一下,在Ubuntu中怎么绑定CPU进程。 taskset -cp 《CPU ID | CPU IDs》 《Process ID》 下面用一个简单的例子来说明怎样做到。 1. CPU利用率达100%的样例代码: class Test { public static void main(String args[]) { int i = 0; while (true) { i++; } } } 2. 编译并运行上面的样例代码 # javac Test.java # java Test & [1] 26531 3. 使用htop命令查看CPU的利用率 如果未安装htop工具,执行下面的命令: # apt-get install htop Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: htop 0 upgraded, 1 newly installed, 0 to remove and 41 not upgraded. Need to get 66.9 kB of archives. After this operation, 183 kB of additional disk space will be used. Get:1 http://mirrors.163.com/ubuntu/ precise/universe htop amd64 1.0.1-1 [66.9 kB] Fetched 66.9 kB in 0s (163 kB/s) Selecting previously unselected package htop. (Reading database ... 57100 files and directories currently installed.) Unpacking htop (from .../htop_1.0.1-1_amd64.deb)... Processing triggers for man-db ... Setting up htop (1.0.1-1)... 安装完成后,执行命令: # htop
上面的视图可以看到,CPU2的利用率达到100%,且这个进程有可能被分配到其它CPU核上运行,这个分配是不定的。 4. 进程绑定CPU核 运行以下命令,把此Java进程(进程ID号为26502)永久的分配给5号CPU核(CPU核号从0开始计算,因此序号4指的是5号CPU核) # taskset -cp 5 26531 pid 26531‘s current affinity list: 0-7 pid 26531’s new affinity list: 5
从上面的视图中可以看到6号CPU核的利用率为100%。 以上就是在Ubuntu中怎么绑定CPU进程的介绍了,当然有些CPU核可能不只一个,不过不管绑定到哪个核效果都是一样的。 Linux是一套免费使用和自由传播的类Unix操作系统 |
温馨提示:喜欢本站的话,请收藏一下本站!