当前位置:首页 » 挖矿知识 » 挖矿cpu亲和力

挖矿cpu亲和力

发布时间: 2021-09-13 06:22:03

『壹』 Linux如何将进程绑定运行在指定CPU上

绑定cpu方式:

c语言:

sched_setaffinity(0, sizeof(mask), &mask)
shell命令:

在grup启动时传给内核参数: isolcpus=2-15, 这里表示隔离第3到16个CPU, Linux程序只跑在第一和第二个CPU上, 空闲的CPU我们可以指定跑进程了.
这是内核文档里对内核参数的解释:

isolcpus= [KNL,SMP] Isolate CPUs from the general scheler.
Format:
<cpu number>,...,<cpu number>
or
<cpu number>-<cpu number>
(must be a positive range in ascending order)
or a mixture
<cpu number>,...,<cpu number>-<cpu number>

This option can be used to specify one or more CPUs
to isolate from the general SMP balancing and scheling
algorithms. You can move a process onto or off an
"isolated" CPU via the CPU affinity syscalls or cpuset.
<cpu number> begins at 0 and the maximum value is
"number of CPUs in system - 1".

This option is the preferred way to isolate CPUs. The
alternative -- manually setting the CPU mask of all
tasks in the system -- can cause problems and
suboptimal load balancer performance.
linux nice 命令详解

功能说明:设置优先权。

语法:nice [-n <优先等级>][--help][--version][执行指令]

补充说明:nice指令可以改变程序执行的优先权等级。

参数:-n<优先等级>或-<优先等级>或--adjustment=<优先等级> 设置欲执行的指令的优先权等级。等级的范围从-20-19,其中-20最高,19最低,只有系统管理者可以设置负数的等级。
--help 在线帮助。
--version 显示版本信息。

linux renice 命令详解

功能说明:调整优先权。

语法:renice [优先等级][-g <程序群组名称>...][-p <程序识别码>...][-u <用户名称>...]

补充说明:renice指令可重新调整程序执行的优先权等级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。等级范围从-20--19,只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。
参数:
-g <程序群组名称> 使用程序群组名称,修改所有隶属于该程序群组的程序的优先权。
-p <程序识别码> 改变该程序的优先权等级,此参数为预设值。
-u <用户名称> 指定用户名称,修改所有隶属于该用户的程序的优先权。

taskset设定cpu亲和力,cpu亲和力是指
CPU调度程序属性关联性是“锁定”一个进程,使他只能在一个或几个cpu线程上运行。对于一个给定的系统上设置的cpu。给定CPU亲和力和进程不会运行在任何其他CPU。注意,Linux调度器还支持自然CPU关联:(不能让这个cpu只为这一个进程服务)
这里要注意的是我们可以把某个程序限定在某一些CPU上运行,但这并不意味着该程序可以独占这些CPU,其实其他程序还是可以利用这些CPU运行。如果要精确控制CPU,taskset就略嫌不足,cpuset才是可以

-a, --all-tasks 操作所有的任务线程-p, --pid 操作已存在的pid-c, --cpu-list 通过列表显示方式设置CPU
(1)指定1和2号cpu运行25718线程的程序
taskset -cp 1,2 25718

(2),让某程序运行在指定的cpu上 taskset -c 1,2,4-7 tar jcf test.tar.gz test
(3)指定在1号CPU上后台执行指定的perl程序
taskset –c 1 nohup perl pi.pl &

『贰』 linux下怎样将线程分配到指定CPU

大概的介绍一下Linux 的指定CPU运行,包括进程和线程。linux下的top命令是可以查看当前的cpu的运行状态,按1可以查看系统有多少个CPU,以及每个CPU的运行状态。
可是如何查看线程的CPU呢?top
-Hp pid,pid就是你当前程序的进程号,如果是多线程的话,是可以查看进程内所有线程的CPU和内存使用情况。

pstree可以查看主次线程,同样的pstree -p pid。可以查看进程的线程情况。

taskset这个其实才是重点,可以查看以及设置当前进程或线程运行的CPU(设置亲和力)。

taskset -pc pid,查看当前进程的cpu,当然有的时候不只是一个,taskset -pc cpu_num pid ,cpu_num就是设置的cpu。

这样的话基本的命令和操作其实大家都知道了,接下来就是在代码中完成这些操作,并通过命令去验证代码的成功率。

进程制定CPU运行:

[cpp] view plain
#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/sysinfo.h>
#include<unistd.h>
#define __USE_GNU
#include<sched.h>
#include<ctype.h>
#include<string.h>

int main(int argc, char* argv[])
{
//sysconf获取有几个CPU
int num = sysconf(_SC_NPROCESSORS_CONF);
int created_thread = 0;
int myid;
int i;
int j = 0;

//原理其实很简单,就是通过cpu_set_t进行位与操作
cpu_set_t mask;
cpu_set_t get;

if (argc != 2)
{
printf("usage : ./cpu num\n");
exit(1);
}

myid = atoi(argv[1]);

printf("system has %i processor(s). \n", num);

//先进行清空,然后设置掩码
CPU_ZERO(&mask);
CPU_SET(myid, &mask);

//设置进程的亲和力
if (sched_setaffinity(0, sizeof(mask), &mask) == -1)
{
printf("warning: could not set CPU affinity, continuing...\n");
}
while (1)
{

CPU_ZERO(&get);
//获取当前进程的亲和力
if (sched_getaffinity(0, sizeof(get), &get) == -1)
{
printf("warning: cound not get cpu affinity, continuing...\n");
}
for (i = 0; i < num; i++)
{
if (CPU_ISSET(i, &get))
{
printf("this process %d is running processor : %d\n",getpid(), i);
}
}
}
return 0;
}

进程设置CPU运行,其实只能是单线程。多线程设定CPU如下:

[cpp] view plain
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include <sched.h>

void *myfun(void *arg)
{
cpu_set_t mask;
cpu_set_t get;
char buf[256];
int i;
int j;
//同样的先去获取CPU的个数
int num = sysconf(_SC_NPROCESSORS_CONF);
printf("system has %d processor(s)\n", num);

for (i = 0; i < num; i++) {
CPU_ZERO(&mask);
CPU_SET(i, &mask);
//这个其实和设置进程的亲和力基本是一样的
if (pthread_setaffinity_np(pthread_self(), sizeof(mask), &mask) < 0) {
fprintf(stderr, "set thread affinity failed\n");
}
CPU_ZERO(&get);
if (pthread_getaffinity_np(pthread_self(), sizeof(get), &get) < 0) {
fprintf(stderr, "get thread affinity failed\n");
}
for (j = 0; j < num; j++)
{
if (CPU_ISSET(j, &get))
{
printf("thread %d is running in processor %d\n", (int)pthread_self(), j);
}
}
j = 0;
while (j++ < 100000000) {
memset(buf, 0, sizeof(buf));
}
}
pthread_exit(NULL);
}

int main(int argc, char *argv[])
{
pthread_t tid;
if (pthread_create(&tid, NULL, (void *)myfun, NULL) != 0)
{
fprintf(stderr, "thread create failed\n");
return -1;
}
pthread_join(tid, NULL);
return 0;
}

『叁』 何时使用Windows Server 2012 R2的CPU亲和力

目前,你可能已经听说过Windows Server 2012 R2新的存储分层特性。但是,另一个新的存储特性同样意义重大却受到较少关注:存储QoS。
在一个服务器虚拟化环境中,一台主机服务器的物理资源在父虚拟分区(parent partition)(主机操作系统)中被共享,各种各样的虚拟机(VM)在主机上运行。在大多数情况下,可以限制虚拟机的硬件使用并禁止其消耗在主机上运行的其它VM所需的资源。例如,你可以把最大的内存分配给一台VM,有效地限制这台VM的物理内存的占用。同样,你可以把指定的CPU核数分配给一台VM,限制其对CPU的占用。
Microsoft Hyper-V从来不允许管理员直接限制的一种资源是存储I/O。实际上,管理员有时把物理的逻辑单元号(logical unit number,LUN)直接分配给一台VM(作为SCSI直通磁盘或者通过虚拟光纤通道),只是作为隔离这台VM磁盘I/O的一种方法,而不免影响其它VM。
通过允许你控制IOPS的Windows Server 2012 R2的Hyper-V Storage QoS特性的方式,更容易控制磁盘I/O。作为替代方案,管理员可以指定一个最低的IOPS,有效地起到IOPS预留的作用。
Storage QoS按每个虚拟硬盘(virtual hard disk,VHD)的方式实施。这意味着即使在单台VM连接多个VHD的情况下,也可以按需设定限制而无须理会其它VHD。
尽管很容易只把Storage QoS特性当成性能特性,它也可以帮助管理员更加有效地利用存储容量。例如,假设一个特定的VHDX文件需要10,000 IOPS。以前,解决方案可能会是找来10个每个可以提供1,000 IOPS的驱动器并将那些驱动器组成一个能够向这台VM提供10,000 IOPS的阵列。
现在假设阵列的每一个驱动器的大小是1TB,刚好是一台10TB的阵列。如果驻留在阵列的数据库的大小只有2TB,那么就浪费了8TB的存储,以便这个阵列可以提供所需的性能水平。Storage QoS允许管理员按需确定容量,可以更有效地使用存储的同时仍然保证性能水平。

『肆』 xta处理器如何保存设置

步骤如下: 下载软件Process Lasso, 然后安装Process Lasso, 打开Process Lasso,设置软件开机启动 然后设置CPU的亲和力等设置,然后保存。 重启即可。

『伍』 linux应用如何进行cpu绑定

1 安装taskset
$ yum install util-linux1

如果系统没有taskset命令,使用yum安装util-linux即可,这是一个工具集,其中包含了taskset命令。
2 查看应用的cpu亲和力(affinity)
$ taskset -p 14795pid 14795's current affinity mask: 3
$ taskset -cp 14795
pid 14795's current affinity list: 0,11234

示例中,查看进程14795的cpu亲和力,使用-p选项指定需要查询的进程号,默认打印的是一个十六进制数,如果使用-cp选项打印的是一个cpu列表,表示相应的cpu核。3的二进制形式是0011,相应的第0位和第1位都是1,对应了-cp打印的0和1,表示14795进程只能运行在cpu的第0个核和第1个核。
3 将应用绑定到指定的cpu运行
$ taskset -p 0x1 14795pid 14795's current affinity mask: 3pid 14795's new affinity mask: 1123


$ taskset -cp 0 14795pid 14795's current affinity list: 0,1
pid 14795's new affinity list: 0123

示例中,通过taskset命令重新设置了进程14795的cpu亲和力,前后2种方式设置效果一样,都表示进程14795只能运行在cpu的第0个核。因为-p指定的0x01二进制形式为0001,第0位是1,表示第0个cpu核。-cp直接指定了0,也表示第0个cpu核。
除了通过taskset命令绑定应用到指定的cpu上,也可以通过taskset命令启动应用,并指定应用运行的cpu,例如:
$ taskset 0x1 sleep 10000 &
[2] 14925$ taskset -p 14925pid 14925's current affinity mask: 1
$ taskset -cp 14925
pid 14925's current affinity list: 0123456

示例中,通过taskset启动应用(使用sleep命令模拟应用),并设置相应的cpu亲和力,即进程14925只能运行在cpu的第0个核。启动程序后查看进程的cpu亲和力,和启动时设置的相同。
另外,除了通过taskset命令实现cpu绑定,很多语言都提供了相应的api实现cpu绑定功能,例如c的sched_setaffinity和sched_getaffinity,python 3的os.sched_setaffinity和os.sched_getaffinity。

『陆』 如何更改360杀毒和安全卫士的CPU亲和力和规则…

按 Ctrl+ALT+DEL(就是小数点)调出任务管理器,点进程,找到360杀毒的“某些进程”(米用过360SD不好意思!!具体是某些进程进360的进程管理器看简介)右击,设置优先级ok
或者你把想要弄高的进程改优先级OK

提一句:这的确是一种方法,但乱限杀软的CPU总是不好滴!!玩正规游戏一般不需要开杀软,前提是你机子里没病毒!单纯玩游戏把360SD(杀毒)的监控关了留下360SAFE(安全卫士)就行

还有免打扰模式是说在调起全屏模式下检测到病毒自行处理不是 就是给充分把资源都让给游戏… 貌似效果还不错 ,怕你在和别人PK突然跳出提示框返回桌面,然后你再回游戏你已经挂了... ...

『柒』 如何保存CPU的相关性设置

步骤如下:

  1. 下载软件Process Lasso,

  2. 然后安装Process Lasso,

  3. 打开Process Lasso,设置软件开机启动

  4. 然后设置CPU的亲和力等设置,然后保存。

  5. 重启即可。


『捌』 什么是CPU的亲和力

。。乱弹琴啦,CPU与谁亲和呀? 这是软件汉化人的杰作啦。Process Lasso,是一款调试进程级别的系统优化工具。主要功能是动态调整各个进程的优先级,并设为合理的优先级以实现为系统减负的目的,可有效避免蓝屏、假死、进程停止响应、进程占用 CPU 时间过多等症状。可能这就叫做“亲和力”啦。

『玖』 如何设置一个特定的线程CPU亲和力

1、在linux下修改进程的“cpu亲和力”
taskset是LINUX提供的一个命令(ubuntu系统可能需要自行安装,schetils package)。他可以让某个程序运行在某个(或)某些CPU上。
以下均以redis-server举例。
1)显示进程运行的CPU
命令taskset -p 21184
显示结果:
pid 21184's current affinity mask: ffffff
注:21184是redis-server运行的pid
显示结果的ffffff实际上是二进制24个低位均为1的bitmask,每一个1对应于1个CPU,表示该进程在24个CPU上运行
2)指定进程运行在某个特定的CPU上
命令taskset -pc 3 21184
显示结果:
pid 21184's current affinity list: 0-23
pid 21184's new affinity list: 3
注:3表示CPU将只会运行在第4个CPU上(从0开始计数)。http://write.blog.csdn.net/postedit?ticket=ST-133194-dCdOr36vRfv7GrhbyGZf-passport.csdn.net
3)进程启动时指定CPU
命令taskset -c 1 ./redis-server ../redis.conf

结合这上边三个例子,再看下taskset的manual,就比较清楚了。
OPTIONS
-p, --pid
operate on an existing PID and not launch a new task
-c, --cpu-list
specify a numerical list of processors instead of a bitmask. The list may contain multiple items, separated by comma, and ranges. For example, 0,5,7,9-11.
2、配置nginx绑定cpu
在conf/nginx.conf中
worker-processes 1;
指一个cpu,如有4个u的话,为worker-processes 3;worker-cpu-affinity 0010 0100 1000,分别代码u 2、3、4的核心
重启nginx后,3个进程各自用各自的进程。注:此nginx.conf配置参数网上资料
3、刨根问底
4、windows下修改cpu“亲和力”

『拾』 如何永久更改某个软件的处理器相关性

使用Process Lasso,安装好后让软件开机启动,选择CPU亲和力,很简单。
我自己一直在用。软件可到网络搜索
Windows 本身是没有这个功能的,重启就会复原,不过这款软件可以保存不复原。
不需要使用Msconfig 或 组策略。

热点内容
比特币在电子支付交易的使用流程 发布:2025-07-20 05:40:56 浏览:830
男朋友去足浴中心出轨 发布:2025-07-20 05:39:28 浏览:660
彩云比特币挖矿机 发布:2025-07-20 05:39:21 浏览:641
数字货币300007 发布:2025-07-20 05:26:06 浏览:458
哪个交易平台买eth最便宜 发布:2025-07-20 05:10:31 浏览:431
熊市挖ETH收益 发布:2025-07-20 04:27:06 浏览:37
公有链和区块链的区别 发布:2025-07-20 04:26:15 浏览:324
snetwork矿机 发布:2025-07-20 04:22:28 浏览:776
元宇宙什么币有价值 发布:2025-07-20 03:35:59 浏览:499
trx波场在哪买 发布:2025-07-20 03:22:16 浏览:878