linux 禁用超线程,Linux动态启用/禁用超线程技术
intel的超线程技术能让一个物理核上并行执行两个线程,大多数情况下能提高硬件资源的利用率,增强系统性能。对于cpu密集型的数值程序,超线程技术可能会导致整体程序性能下降。鉴于此,执行OpenMP或者MPI数值程序时建议关闭超线程技术。
以下是github上找到的动态打开、关闭超线程技术的脚本。其原理是根据/sys/devices/system/cpu/cpuX/topology/thread_siblings_list文件找到逻辑核的关系,然后编辑/sys/devices/system/cpu/cpuX/online文件实现动态开启和关闭超线程技术。
#!/bin/bash
HYPERTHREADING=1
function toggleHyperThreading() {
for CPU in /sys/devices/system/cpu/cpu[0-9]*; do
CPUID=`basename $CPU | cut -b4-`
echo -en "CPU: $CPUIDt"
[ -e $CPU/online ] && echo "1" > $CPU/online
THREAD1=`cat $CPU/topology/thread_siblings_list | cut -f1 -d,`
if [ $CPUID = $THREAD1 ]; then
echo "-> enable"
[ -e $CPU/online ] && echo "1" > $CPU/online
else
if [ "$HYPERTHREADING" -eq "0" ]; then echo "-> disabled"; else echo "-> enabled"; fi
echo "$HYPERTHREADING" > $CPU/online
fi
done
}
function enabled() {
echo -en "Enabling HyperThreadingn"
HYPERTHREADING=1
toggleHyperThreading
}
function disabled() {
echo -en "Disabling HyperThreadingn"
HYPERTHREADING=0
toggleHyperThreading
}
#
ONLINE=$(cat /sys/devices/system/cpu/online)
OFFLINE=$(cat /sys/devices/system/cpu/offline)
echo "---------------------------------------------------"
echo -en "CPU's online: $ONLINEt CPU's offline: $OFFLINEn"
echo "---------------------------------------------------"
while true; do
read -p "Type in e to enable or d disable hyperThreading or q to quit [e/d/q] ?" ed
case $ed in
[Ee]* ) enabled; break;;
[Dd]* ) disabled;exit;;
[Qq]* ) exit;;
* ) echo "Please answer e for enable or d for disable hyperThreading.";;
esac
done
备注:
1.脚本需root权限执行;
2.可以通过cat /proc/cpuinfo查看启用的cpu信息,该命令无需root权限;
3.lscpu命令可查看cpu的状态(无需root权限):超线程状态下threads per core数值为2,禁用时为1.
参考
Disable / Enable HyperThreading cores on runtime – linux
原创文章,作者:kinpo, k,如若转载,请注明出处:https://www.yidc.net/archives/4597
linux 禁用超线程,Linux动态启用/禁用超线程技术相关推荐
- Linux动态启用/禁用超线程技术
转载请注明文章出处:https://tlanyan.me/linux-enable-disable-hyper-threading/ intel的超线程技术能让一个物理核上并行执行两个线程,大多数情况 ...
- linebreak_WPF:LineBreak动态启用/禁用
我不相信FlowDocument中有任何方法可以使LineBreak不会真正中断,除非将其取出.您可以选择切换到使用WPF布局或使用附加属性在LineBreak和空Run之间切换. 使用WPF布局 您 ...
- 如何在Redhat 7 Linux系统上停止/启动和禁用/启用防火墙
转载来源:https://linuxconfig.org/how-to-stop-start-and-disable-enable-firewall-on-redhat-7-linux-system ...
- linux barrier,Linux文件系统的barrier:启用还是禁用
大多数当前流行的Linux文件系统,包括EXT3和EXT4,都将文件系统barrier作为一个增强的安全特性.它保护数据不被写入日记.但 是,在许多情况下,我们并不清楚这些barrier是否有用.本文 ...
- linux网络基础设置篇-----(查看网络连接情况,域名解析nslookup,本地映射,启用禁用网络接口,路由跟踪)
目录 1,查看网络接口信息ifconfig (1) 查看所有活动的网络接口信息 (2)查看指定网络接口信息 2,查看主机名称hostname (1)hostname 命令 3 , 查看路由条目标rou ...
- linux barrier,如何决定何时启用Linux文件系统barrier功能?
大多数当前流行的Linux文件系统,包括EXT3和EXT4,都将文件系统barrier作为一个增强的安全特性.它保护数据不被写入日记.但是,在许多情况下,我们并不清楚这些barrier是否有用.本文就 ...
- RHEL/CentOS 7.x如何启动/关闭、启用/禁用服务? 修改系统运行级别
一.Services使用了systemd来代替sysvinit管理 1.systemd的服务管理程序: systemctl是主要的工具,它融合之前service和chkconfig的功能于一体.可以使 ...
- linux共享库 == windows动态库
linux共享库 == windows动态库 之间基本等同.
- 演示:混合配置基于Linux winows cisco环境动态路由
演示:混合配置基于Linux winows cisco环境动态路由 (使用GNS3+VM完全可以一台物理计算机上完成所有实验) 配套演示录像:http://edu.51cto.com/course/c ...
- python 禁用网卡_如何编程实现启用禁用网卡
展开全部 /***************************************************************************** 演示如何编程6261696475 ...
最新文章
- 使用ROS和TensorFlow进行深度学习
- Linux下一些操作命令
- 如何在Python中调用Windows的cmd命令?
- Java的新项目学成在线笔记-day6(五)
- AnimatorController即动画控制器创建的BUG
- 正则化与L0、L1、L2范数略解
- win32 输出文字时清除之前的_努力学习没效果?3个步骤,强化沟通输出,实现飞跃式成长...
- 机器学习-集成之随机森林算法原理及实战
- bzoj 2908. 又是nand(树链剖分+区间NAND+单点修改)
- eclipse mat 打开dump文件,明明大小1G,打开后却只有不到100M.其他的去哪了
- win10 x64下安装oracle 12c出现[INS-30131]报错的解决方案
- Android Debug方法
- vs 下 opengl 配置问题
- IE6之各种不适记录
- 记录数据库面试题及答案21~41
- WebLogic安装说明
- 一个炫酷的个人网站带后台
- linux cat命令什么意思
- 13位时间戳单位为毫秒,10位字符串单位为秒。时间戳转换日期数字格式100%全乎
- MarkdownPad2 自动生成目录
热门文章
- ideal上初写mapreduce程序出现的报错信息解决
- 计算机usb口设置方法,如何在电脑上设定usb端口权限
- CodeForces - 1117G
- STM32单片机配置FPGA
- 大话2服务器丢失怎么修复,我玩大话2,现在服务器找不见了,怎么办?
- response.addheader详解
- MATLAB 如何导入.txt文本
- C++11的std::is_same和std::decay使用与源码解析
- c语言小兔子原来有1个萝卜,小兔子和小狐狸的100个睡前晚安小故事
- Android之BLE(低功耗)蓝牙开发