我正在尝试在我的服务器上启用 Turbo Boost。根据英特尔的产品页面,我使用的是英特尔至强 E5 2630 v3,它应该支持高达 3.2Ghz 的 Turbo Boost 。
问题是处理器没有超频,并且使用 2.4 GHz 作为最大频率。为了测试操作系统是否是问题所在(我已经测试了 Linux Mint 和 Debian),我将 SSD 安装在我的计算机中,并且配备了 i7 3770,Turbo Boost 运行得非常好。
这是“cpupower”命令的输出:
mint@mint ~ $ cpupower frequency-info
analyzing CPU 0:
driver: pcc-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
hardware limits: 1.20 GHz - 2.40 GHz
available cpufreq governors: conservative, ondemand, userspace, powersave, performance
current policy: frequency should be within 1.20 …Run Code Online (Sandbox Code Playgroud) 我正在使用 CentOS,并且我已经使用make menuconfig.
但是,它是如何工作的?在menuconfig中更改后,是不是在瞬间进行修改?还是我必须编译整个内核才能获得此配置?
我们正在 AWS EC2 内构建在 Centos7 之上的 Jenkins 实例中构建或运行 Docker 容器。我们有 2 个带有 2 个 CPU 和 3.5 Gb 可用内存的 t2.medium 盒实例。
在一种情况下,我们正在另一个中构建容器,我们只是拉动它们并运行(不同的容器)。
我们开始出现错误
open /var/lib/docker/overlay/<sha>-init/merged/dev/console: cannot allocate memory
Run Code Online (Sandbox Code Playgroud)
在journalctl我们得到
page allocation failure: order:4
Run Code Online (Sandbox Code Playgroud)
运行页面缓存转储可以暂时解决问题
echo 1 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
所以我注意到在运行 docker 任务时,Dirty内存块会出现峰值(应该如此)并Mapped在它之后跳跃。然而,DirectMap4k相对接近那个跳跃。
例如:
闲置机器
cat /proc/meminfo | grep -P "(Dirty|Mapped|DirectMap4k)"
Dirty: 104 kB
Mapped: 45696 kB
DirectMap4k: 100352 kB
Run Code Online (Sandbox Code Playgroud)
主动机
cat /proc/meminfo | grep -P "(Dirty|Mapped|DirectMap4k)"
Dirty: 72428 kB
Mapped: 70192 kB
DirectMap4k: …Run Code Online (Sandbox Code Playgroud) 我想使用ULOG防火墙日志并将其发送到ulogd2
iptables -A INPUT -i eth0 -j ULOG
Run Code Online (Sandbox Code Playgroud)
给我以下错误:
iptables: No chain/target/match by that name
Run Code Online (Sandbox Code Playgroud)
我在内核中启用了这些与日志相关的选项:
CONFIG_NETFILTER_NETLINK_LOG=y
CONFIG_NF_LOG_COMMON=y
CONFIG_NETFILTER_XT_TARGET_LOG=y
CONFIG_NETFILTER_XT_TARGET_NFLOG=y
CONFIG_NF_LOG_IPV4=y
Run Code Online (Sandbox Code Playgroud)
ULOG 还需要什么才能工作?
我没有看到任何 ULOG 选项(搜索 ULOG 时没有找到)
我的内核是 4.4。
我在zstd中找到/drivers/block/zram/zcomp.c,但在 中找不到任何与 zstd 相关的内容/crypto。那么 zstd for zram 是否真的在 Linux 4.15 中可用?
我读start_kernel的功能/init/main.c。所谓的最后一个功能start_kernel是rest_init,在年底rest_init,cpu_idle被调用。
为什么它被称为start_kernel例程的最后一个函数,它有什么作用?
我认为我的 Linux 笔记本电脑被黑了,原因有以下三个:
每当我将文件保存到 Home 文件夹中时,这些文件都不会出现——甚至不会出现在我计算机上的其他文件夹中。
我的主文件夹中出现了一个陌生的 .txt 文件。看到后,我没有打开它。我立即怀疑我的笔记本电脑可能被黑了。
检查我的防火墙状态时,结果发现它处于非活动状态。
Thus, I have taken the following steps:
I backed-up all of my recent files using two USB Sticks that aren't as important as other USB Sticks which I own - so in case those USB Sticks get infected with the potential malware, it wouldn't infect my other backed-up important files.
I've used ClamTK in order to scan the aforementioned suspicious file - but apparently, for some reason, it hasn't detected …
我知道有一个syscall约定,但是您在调用之前看到的调用约定是什么,int 80而不是syscall像这样调用。
mov rax,4 ; system call number (sys_write)
mov rbx,1 ; file descriptor (stdout)
mov rcx,hello ; message to write
mov rdx,12 ; message length
int 0x80 ; call kernel
Run Code Online (Sandbox Code Playgroud)
我在这里读到后面的参数rdx是esi, edi, ebp(或对于 x64 rsi, rdi, rbp),我没有看到它记录在Wikipedia 的调用约定页面中,但是int80h似乎表明 Windows 也使用这个约定?
这是什么约定俗成的名字。我可以在 Linux 内核源代码中的哪个位置看到它的定义?并且,rax当您调用时解析为过程的表在哪里int 0x80?对于syscall,sys_write是rax=1
我问的是许多进程可能会使用的 printf 之类的函数,并且还需要内核的帮助来处理系统调用之类的事情。
对发生的事情的详细分步描述是什么?因为我在这方面有点困惑,所以我有这些问题:
printf 函数的指令是否在我们用户进程的内核部分?当它尝试执行 printf 时,我们对同一用户进程中的内核位置执行 JMP,但我们进入内核模式?或者是否有上下文切换和内核进程执行此操作?
执行 printf 等函数的所有进程在其虚拟内存中调用 printf 时是否都映射到相同的物理内存位置?
总的来说,非内核进程使用虚拟内存的内核部分的情况有哪些?
是否可以在不重新启动的情况下在运行时更改此值?我并不总是有这个问题,当我现在暂停时,我遇到了失败并且
暂停控制台(
no_console_suspend用于调试)
我想现在调试,而不必重新启动并重新创建问题。