如何Linux动态启用和禁用超线程技术
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章主要介绍"如何Linux动态启用和禁用超线程技术",在日常操作中,相信很多人在如何Linux动态启用和禁用超线程技术问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年02月08日如何Linux动态启用和禁用超线程技术
这篇文章主要介绍"如何Linux动态启用和禁用超线程技术",在日常操作中,相信很多人在如何Linux动态启用和禁用超线程技术问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何Linux动态启用和禁用超线程技术"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
intel的超线程技术能让一个物理核上并行执行两个线程,大多数情况下能提高硬件资源的利用率,增强系统性能。对于cpu密集型的数值程序,超线程技术可能会导致整体程序性能下降。鉴于此,执行OpenMP或者MPI数值程序时建议关闭超线程技术。
以下是github上找到的动态打开、关闭超线程技术的脚本。其原理是根据/sys/devices/system/cpu/cpuX/topology/thread_siblings_list
文件找到逻辑核的关系,然后编辑/sys/devices/system/cpu/cpuX/online
文件实现动态开启和关闭超线程技术。
#!/bin/bashHYPERTHREADING=1function toggleHyperThreading() { for CPU in /sys/devices/system/cpu/cpu[0-9]*; do CPUID=`basename $CPU | cut -b4-` echo -en "CPU: $CPUID\t" [ -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 HyperThreading\n" HYPERTHREADING=1 toggleHyperThreading}function disabled() { echo -en "Disabling HyperThreading\n" HYPERTHREADING=0 toggleHyperThreading}#ONLINE=$(cat /sys/devices/system/cpu/online)OFFLINE=$(cat /sys/devices/system/cpu/offline)echo "---------------------------------------------------"echo -en "CPU's online: $ONLINE\t CPU's offline: $OFFLINE\n"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.";; esacdone
备注:
脚本需
root
权限执行;可以通过
cat /proc/cpuinfo
查看启用的cpu信息,该命令无需root
权限;lscpu
命令可查看cpu的状态(无需root
权限):超线程状态下threads per core
数值为2,禁用时为1.
参考
Disable / Enable HyperThreading cores on runtime - linux
到此,关于"如何Linux动态启用和禁用超线程技术"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
线程
技术
动态
学习
数值
权限
程序
命令
性能
文件
更多
状态
脚本
帮助
实用
接下来
两个
信息
利用率
原理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库系统工程师和中级经济师
山西hp服务器维修调试多少钱
把软件开发流程分成多个阶段
武汉网络安全学院规划方案
网络安全责任意识
如何注册dns服务器
vb链接数据库系统
药智网数据库会员费用
web应用软件开发比赛有奖金嘛
数据库怎么手动修改数据
F12021服务器核心
不沉迷网络 网络安全知识
德州网络安全专家
函数实现数据库管理
上海鼎桥通信软件开发薪资
数据库创建存储命令的过程是
上海掌盈网络技术有限公司
怎么申请达人服务器
服务器是怎么管理员权限
21年绝地求生怎么选服务器
计算机网络技术的好与坏
招标网络技术支持
河北保定网络安全大队
无尽之剑服务器
AC数据库应用技术卷子答案
电信网络安全与管理
护苗网络安全课 广东广州
增强网络安全意识申论
某个软件服务器响应错误
阿里服务器上部署项目如何清缓存