CPU-IO-网络-内核参数的调优

简介: CPU-IO-网络-内核参数的调优

调整nice值改变进程优先级
1、nice概述:在LINUX系统中,Nice值的范围从-20到+19(不同系统的值范围是不一样的),正值表示低优先级,负值表示高优先级,值为零则表示不会调整该进程的优先级。具有最高优先级的程序,其nice值最低,所以在LINUX系统中,值-20使得一项任务变得非常重要;与之相反,如果任务的nice为+19,则表示它是一个高尚的、无私的任务,允许所有其他任务比自己享有宝贵的CPU时间的更大使用份额,这也就是nice的名称的来意。默认优先级是0

2、在命令运行前,调整进程nice值,让进程使用更多的CPU
语法: nice -n 优先级数字 命令
例:将vim a.txt命令的优先级,从默认的0级别调高到-5级别
[root@xuegod63 ~]# nice -n -5 vim a.txt #先不要退出这个vim命令。

再打开另一个终端窗口执行以下命令:
[root@xuegod63 ~]# ps -axu | grep a.txt
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 24318 0.0 0.2 143624 3280 pts/4 S+ 17:00 0:00 vim b.txt

[root@xuegod63 ~]# top -p 24318
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24219 root 15 -5 140m 3336 2200 S 0.0 0.3 0:00.08 vim

2、使用renice修改正在运行的进程的优先级
语法:renice -n 5 PID #修改进程优先级
例:将先前vim 的PID 24318优先级调整为级别6
[root@xuegod63 ~]# renice -n 6 24318
[root@xuegod63 ~]# top -p 24318
。。。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24219 root 15 6 140m 3336 2200 S 0.0 0.3 0:00.08 vim

3、进程优先级不可以超过 -20 到19范围
[root@xuegod63 ~]# renice -n -21 24219 #发现我想给-21级别,但最终只能达到-20级别。
24219: old priority -20, new priority -20
[root@xuegod63 ~]# renice -n 20 24219 #发现我想给20级别,但最终只能达到19级别。
24219: old priority -20, new priority 19
通过这个例子,告诉我们进程优先级不可以超过 -20 到19范围

9.1.2 设置进程的CPU亲和力
taskset 作用:在多核的情况下,可以认为指定一个进程在哪颗CPU上执行程序,减少进程在不同CPU之前切换的开销。
1、安装taskset命令:
[root@xuegod63 ~]# yum install util-linux
2、taskset语法: taskset -cp [CPU ID号] 命令或进程ID
常用参数:
-p, --pid 在已经存在的 pid 上操作
-c, --cpu-list 以列表格式显示和指定CPU

例1:本服务器是4核CPU ,指定vim命令在第一个CPU上运行。
[root@xuegod63 ~]# taskset -c 0 vim a.txt #第一个CPU的 ID是0。

在另一个终端下运行:
[root@xuegod63 ~]# ps -axu | grep vim
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 2614 1.3 0.2 143696 3332 pts/0 S+ 18:39 0:00 vim a.txt
[root@xuegod63 ~]# taskset -cp 2614
pid 2614's current affinity list: 0 #affinity [əˈfɪnəti] 密切关系

例2:查sshd进程运行在哪几个CPU上
[root@xuegod63 ~]# ps -axu | grep sshd
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 2030 0.0 0.0 64068 1140 ? Ss 18:26 0:00 /usr/sbin/sshd

[root@xuegod63 ~]# taskset -cp 1087
pid 1087's current affinity list: 0-3 #0-3说明sshd进程可以使用4个CPU核心处理数据。
注: 我们的CPU是4核心,所以taskset -c后可以跟: 0,1,2,3

例3:指定vim c.txt 程序运行在第2和第4个CPU上
[root@xuegod63 ~]# taskset -c 1,3 vim b.txt
[root@xuegod63 ~]# ps -axu | grep vim
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 6314 1.5 0.2 143612 3280 pts/1 S+ 14:41 0:00 vim b.txt
root 6317 0.0 0.0 103300 848 pts/2 S+ 14:41 0:00 grep vim
[root@xuegod63 ~]# taskset -cp 6314
pid 5069's current affinity list: 1,3

目录
相关文章
|
10天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
70 5
|
13天前
|
存储 机器人 Linux
Netty(二)-服务端网络编程常见网络IO模型讲解
Netty(二)-服务端网络编程常见网络IO模型讲解
|
27天前
|
运维 网络协议 搜索推荐
内核网络小白之故障寻踪记
本文记述了一次由 skb(socket buffer)异常导致的内核故障排查过程。
|
1月前
|
Linux API 调度
CPU热插拔在内核中的支持 【ChatGPT】
CPU热插拔在内核中的支持 【ChatGPT】
37 14
|
2月前
|
监控 网络协议 Linux
在Linux中,如何进行网络调优?
在Linux中,如何进行网络调优?
|
2月前
|
监控 Linux 测试技术
什么是Linux系统的网络参数?
【8月更文挑战第10天】什么是Linux系统的网络参数?
47 5
|
2月前
|
消息中间件 网络协议 Java
你不得不了解的网络IO模型知识
该文章主要讲述了网络I/O模型的相关知识,包括不同的I/O模型以及它们的特点和应用场景。
你不得不了解的网络IO模型知识
|
2月前
|
Linux
Linux系统如何查看版本信息,内核、发行版、cpu、所有版本
Linux系统如何查看版本信息,内核、发行版、cpu、所有版本
|
3月前
|
负载均衡 Linux
网络相关的调优
网络相关的调优
27 11
|
2月前
|
机器学习/深度学习 网络安全 TensorFlow
探索操作系统的心脏:内核与用户空间的奥秘云计算与网络安全:技术挑战与未来趋势深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【8月更文挑战第29天】在数字世界的每一次点击与滑动背后,都隐藏着一个不为人知的故事。这个故事关于操作系统——计算机的灵魂,它如何协调硬件与软件,管理资源,并确保一切运行得井井有条。本文将带你走进操作系统的核心,揭示内核与用户空间的秘密,展现它们如何共同编织出我们日常数字生活的底层结构。通过深入浅出的讲解和代码示例,我们将一同解锁操作系统的神秘面纱,理解其对现代计算的重要性。 【8月更文挑战第29天】本文将深入探讨卷积神经网络(CNN)的基本原理和结构,以及它们如何被广泛应用于图像识别任务中。我们将通过代码示例来展示如何使用Python和TensorFlow库构建一个简单的CNN模型,并训练
下一篇
无影云桌面