Articles of linux kernel

科学Linux:四核opteron系统软locking

在550天的令人印象深刻的正常运行时间没有麻烦之后,我从一个FreeNAS-box上挂载了一个nfs-share几天后,我们的四路opteron系统变成了一个损坏的系统。 正在进行的会话保持活动,但新的login失败,因为既没有获得一个shell或chroot的工作(鉴别工作,正如我在/ var / log / secure中看到的那样 – 把login过程在之后简化了)。 / var / log / messages指向安装写入进程的写入写入过程: BUG: soft lockup – CPU#38 stuck for 61s! [maq:27850] Modules linked in: nfs lockd fscache nfs_acl auth_rpcgss sunrpc sit tunnel4 tun fuse autofs4 cpu freq_ondemand powernow_k8 freq_table ipt_REJECT nf_conntrack_ipv4 nf_defra g_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 […]

Linux KVM:对Windows客户机上丢弃的数据包进行故障诊断

virsh 0.9.10 Enterprise Linux 6.3我在KVM主机上运行了Windows 7 guest虚拟机,并且在同一个子网上ping其他机器时经常看到25%的损失。 第一次ping请求超时,其他通常成功。 如何解决Windows客户机上可能的数据包丢失或错误? 我在KVM主机上做了ifconfig,看到没有丢包或错误的数据包。

固定TCP有效载荷大小

我有一个应用程序,需要在TCP数据包中有一个固定的(516 byes)有效载荷大小。 应用程序本身不能被修改来调整它的设置,因此我需要调整操作系统的TCP缓冲区大小… 据我所知TCP缓冲区大小(SO_SNDBUF)可能会被调整,以便“自动调整”不会尝试在数据包中包含更多的数据。 如果我调整SO_SNDBUF到516将只有有效载荷或将影响整个数据包(头+有效载荷)?

Web服务器“任务被阻塞超过120秒”

我的networking服务器每两天就closures一次。 它变得没有反应,我只能在控制台上看到下面的消息。 任务****被阻塞超过120秒。 唯一的方法来提出是重置服务器不好,我想弄清楚它。 我的服务器在VMWare环境中运行。 问题: 14.89 LOAD AVERAGE是我的问题吗? 如果不是,我下一步将排除故障? 这是我的崩溃日志: KERNEL: /usr/lib/debug/lib/modules/2.6.32-431.3.1.el6.x86_64/vmlinux DUMPFILE: /var/crash/127.0.0.1-2014-08-26-01:25:16/vmcore [PARTIAL DUMP] CPUS: 4 DATE: Tue Aug 26 01:25:11 2014 UPTIME: 00:14:00 LOAD AVERAGE: 14.89, 5.57, 2.09 TASKS: 207 NODENAME: test01 RELEASE: 2.6.32-431.3.1.el6.x86_64 VERSION: #1 SMP Fri Jan 3 21:39:27 UTC 2014 MACHINE: x86_64 (2933 Mhz) MEMORY: 2 GB PANIC: […]

如何在不使用文件系统caching的情况下直接从Linux中的文件读取数据?

我共享的存储在SERVER1上挂载(只读),并在SERVER2上挂载(读写)。 SERVER2正在将数据写入文件。 SERVER1正在从该文件读取数据。 文件轮询<100ms,这是很快,但只要说是必要的。 SERVER1正在访问文件系统caching,而不是在文件中显示新的数据。 我可以drop_caches,然后返回该文件中的最新数据,但此过程将删除SERVER1上的所有文件caching,这不是我想要做的,它需要太长的时间来处理。 我已经尝试使用cat命令,以及dd if = / path / to / file -iflag = direct,但是这也不起作用。 它返回一个错误。 该标志似乎不被支持的文件。 任何想法如何直接从磁盘读取文件,或如何禁用文件/目录/挂载点的文件系统caching? 我也会考虑禁用系统范围内的文件caching,但那不是我的第一select,这只是针对一个文件。 谷歌也没有办法做到这一点,因为大多数论坛post都反对这样的行动。 谢谢!

以root用户身份使用SSHlogin到远程计算机

我的问题是类似于这个 ,我试图自动化的地方,我可以访问远程机器,并作为超级用户运行一个命令。 它工作正常,直到它login,就像从这里: – $ ssh-keygen -t rsa -b 2048 至 $ ssh-copy-id id@server id@server's password: $ ssh id@server id@server:~$ 我的开销是我可以要求用户远程机器的密码只有一次(而生成SSH密钥),之后,当作为超级用户运行一个命令,它不应该再次要求密码即它不应该需要像下面:- sudo su 有什么办法可以做到吗? 因为我试图将密码保存为variables,然后将值replace为: – echo -n "Enter password > " read passwd sshpass -p $username ssh -o StrictHostKeyChecking=no $username@$server sudo some_application & 它会提示input密码,我不能代替我声明的variables的值。

TCP Dup ACK linux内核3.2

我在debian 8.1 kernel 3.16.0-4-amd64上使用HTTPS时托pipe的服务器速度非常缓慢Apache 2.4.10-10 这个架构是:CLIENT XXXX => NAT ON FIREWALL:YYYY => HTTP(S)WEB SERVER LAN IP:10.254.248.101 使用HTTPS进行testing: wget –no-check-certificate https://YYYY/test/debian-8.5.0-amd64-netinst.iso debian-8.5.0-amd64-netinst.iso.5 0%[ ] 632.00K 15.5KB/s eta 4h 30m 当在服务器上运行tcpdump跟踪(跟踪如下)时,客户端XXXX要求10.254.248.101多次重新发送数据包。 服务器等待几乎4秒钟以重新发送客户端请求的数据包。 这就是为什么我在服务器上如此缓慢地下载。 我不明白的是为什么服务器需要很长时间才能重新发送数据包。 Linux内核3中有什么新的TCP? 在Apache 2.4中有什么新东西? 有人认为防火墙无法pipe理? 请注意,在这些情况下我们没有这个问题: 使用HTTP时(不含TLS)(下面的testing)。 当客户端来自ISP的时延较长(200到250毫秒)到我们的数据中心。 相同的架构,相同的SSL证书,但较旧的Linux内核2.6和较旧的Apache 2.2.16-6。 当我们把防火墙设置为防火墙IP之前,把WEB SERVER设置为:CLIENT XXXX => YYYY 使用HTTP进行testing: wget http://YYYY//test/debian-8.5.0-amd64-netinst.iso debian-8.5.0-amd64-netinst.iso.6 35%[=============================> ] 86.53M 1.34MB/s eta […]

如何用debugging符号编译内核?

我已经完成了从源代码编译内核, 但如何使用debugging符号进行编译,还需要采取哪些额外步骤?

当前正在运行的内核无法安装kernel-uek-headers

我刚刚在VMWare中创build了一个VM,并安装了Oracle Enterprise Linux 6.3的最小安装。 # cat /etc/oracle-release Oracle Linux Server release 6.3 它正在与UEK内核一起运行。 # uname -r 2.6.39-200.24.1.el6uek.x86_64 当我尝试安装VMWare Tools时,出现以下错误。 Searching for a valid kernel header path… The path "" is not a valid path to the 2.6.39-200.24.1.el6uek.x86_64 kernel headers. Would you like to change it? [yes] 我已经安装了版本2.6.39的UEK,但是kernel-uek-headers只有2.6.32。 # yum list kernel-uek Installed Packages kernel-uek.x86_64 2.6.39-200.24.1.el6uek […]

使用Linux作为引导程序?

我有一个SPI连接闪存的embedded式设备。 基本上这意味着设备从一个小的闪存部分启动引导加载程序和Linux内核。 当设备启动,但在根文件系统被挂载和switch_root被调用之前 – 我想select启动另一个不同的内核 这样的事情可能吗? 我的目标是在闪存中有一个非常小的引导程序和库存内核,然后在硬盘上放置一个更新/更大的内核。 我的引导程序非常有限,我无法从硬盘读取较新的内核。 简而言之 a) CPU comes out of reset, reads its bootloader from flash b) bootloader boots, inits basic hardware, loads Linux kernel from flash c) kernel boots, inits more hardware, and reads a second kernel from a hard disk d) I'd like to switch to the second kernel […]