Articles of linux

为什么strace打开,读取512字节,然后fstat libncurses?

我有以下strace输出,我正在经历一些关于程序stream程的教程。 以下是令我困惑的部分: 16:08:02 open("/lib/libncurses.so.5", O_RDONLY) = 3 <0.000046> 16:08:02 read(3, "\x7f\"…, 512) = 512 <0.000048> 16:08:02 fstat64(3, {st_dev=makedev(202, 0), st_ino=16548, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=464, st_size=231576, st_atime=2011/02/06-15:37:43, st_mtime=2011/01/04-06:05:23, st_ctime=2011/02/06-15:37:43}) = 0 <0.000038> 通过读取前512个字节获得什么? 看起来这种模式在共享库中很常见。 更新:我刚刚得到了一个很好的答案 ,澄清了512字节的长度。 具体来自elf / dl-load.c中的注释: ELF头32位文件长52字节,64位文件长64字节。 每个节目标题条目分别是32和56个字节。 即,即使是有10个程序头文件的文件,我们也只需要分别读取372B / 624B。 除此之外,对于程序笔记还有一点空白,对于32位和64位文件分别读512B和832B就足够了。

为什么在Oracle中添加数据文件会导致死锁?

我注意到了Oracle以前从未发生过的一些事情。 虽然我现在经常做这种事情多年。 在这种情况下,它是一个Oracle11实例(Oracle数据库11g企业版版本11.2.0.1.0 – 在Linux上精确运行的64位)。 我正在导入一个转储文件,同时我正在使用像这样的语句来增加表空间: alter tablespace example add datafile '/path/to/oradata/instance/exampleXX.dbf' size 31000m; 运行上述语句时,有时会出现以下错误: ERROR at line 1: ORA-00060: deadlock detected while waiting for resource 我可以重新启动alter tablespace语句,并且大部分都会在第二次尝试的时候顺利完成。 我在问为什么发生这种事,因为这对我来说是不寻常的。 它是否表示一个错误或阻碍文件系统失败? 我知道运行一个导入和同时向一个表空间添加数据文件可能需要很多的服务器,但是这是服务器有4个CPU,64 GB和几个TB的RAID raid10在它的处置。 顺便说一句,这不是一个生产系统。 相关的跟踪文件输出: Deadlock graph: ———Blocker(s)——– ———Waiter(s)——— Resource Name process session holds waits process session holds waits TT-00000006-00000010 36 11 SX 38 142 […]

如何阅读“顶”。 进程列表说进程有交换,但概述说没有交换正在使用

我使用top来监视我的服务器。 交换行读取 Swap: 1044220k total, 0k used, 1044220k free, 148544k cached 我已经打了O p按交换sorting。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND 703 mysql 20 0 930m 43m 7092 S 0 8.9 0:00.66 886m mysqld 1555 www-data 20 0 346m 9792 3208 S 0 2.0 0:00.00 337m apache2 1559 www-data 20 […]

Linux实用程序loggingIO统计信息(随机/顺序,块大小,读/写比率)

作为configuration我们的新服务器的一部分(见其他SF ),我想找出以下内容: 随机到顺序读写的比率 一次读取和写入的数据量(以直方graphics式表示) 我已经可以使用iostat&dstat来查看每个操作和整个数据级别的读/写了,但是我想知道更多。 例如,我想知道,我们大多是随机的16kb读取,或者随机写入的很多顺序的64kb读取。 我们(当前)在Ubuntu 10.04 VM上。 是否有一个我可以运行的实用程序将为我logging和呈现这些信息?

如何停止Linux LVM卷组?

我目前正在处理由RAID-5 md设备备份的Linux LVM卷组上的多个磁盘故障。 由于似乎是一个行为不端的电源,一个磁盘已被完全取出,另一个磁盘则显示有限数量的腐败行业。 问题是,一旦I / O错误发生, md就会closuresarrays,因为它没有足够的设备来运行。 哪里唯一涉及,我可以mdadm –stoparrays,然后重新创build它让所有设备再次活跃。 不幸的是,arrays是LVM卷组中的PV,我似乎无法让内核释放它。 vgchange -an似乎没有做任何事情,酒吧发现了几个I / O错误。 我明显错过了一些东西,但是如何以-insert-favorite-deity的名义让LVM在不重新启动服务器的情况下释放基础PV?

如何使Linux系统的date时间比现实世界的date时间运行更快?

背景 我想在几天内监控一个正在运行的linux系统。 这是一个自定义的gentoo构build和船上定制的软件。 该软件具有持续的维护定时器和cron脚本以及其他时钟驱动的事件。 我需要validation这些预定的事件正在工作。 问题 等待系统进行每日和每周的活动是一个漫长的等待时间。 并且修改系统中所有基于时钟的定时器将非常耗时。 然而,我经常想要testing一个系统的端到端的计划活动, 而不用等一个星期。 潜在的解决scheme 让被testing的linux系统在短短几个小时内就能看到它的日常运行周期。 我的问题为Serverfault 有没有办法让系统的时间比现实世界的时间更快? 我的第一个想法是操纵ntp守护进程反复平稳地增加时钟。 任何其他的想法? 是的,我知道这可能有副作用。 但是,系统与系统之外的其他系统没有重要或时间关键的相互作用。 这可能是一个有价值的testing技术。

为什么每个人都有和我一样的MAC地址?

我刚买了一些消费级的McCheap PCI-E网卡(这是一个坏主意)。 他们都有相同的MAC地址。 当我谷歌,似乎该公司的每张卡具有相同的地址: 00:50:43:00:45:3e 。 它们不应该是唯一的吗? 根据lspci这是一个Marvell科技集团有限公司88E8053 PCI-E千兆以太网控制器(20版) 。 有没有办法永久刷新一个新的地址?

通过SSH隧道使用服务器的IP

首先,我的设置是Ubuntu笔记本电脑和Ubuntu服务器。 我在我的本地笔记本电脑上有一个需要访问某个networking服务的程序(可以叫http://someserver.com/someservice123 )。 现在这个服务有一个防火墙,只允许从我的服务器的IP访问。 是否有某种types的SSH隧道,我可以使用我的笔记本电脑和服务器之间,以便当我的笔记本电脑上的Python脚本发送请求http://someserver.com/someservice123该服务看到来自我的服务器的IP请求? 我知道它会看起来像这样: ssh -N -R 80:localhost:80 user@myserver 但我不确定。

用iptableslogging哪个用户正在将邮件发送到端口25

因为我们被CBL列入黑名单,所以我使用iptables设置了以下防火墙规则: #!/bin/bash iptables -A OUTPUT -d 127.0.0.1 -p tcp -m tcp –dport 25 -j ACCEPT iptables -A OUTPUT -p tcp -m tcp –dport 25 -m owner –gid-owner mail -j ACCEPT iptables -A OUTPUT -p tcp -m tcp –dport 25 -m owner –uid-owner root -j ACCEPT iptables -A OUTPUT -p tcp -m tcp –dport 25 -m […]

服务器响应每个命令的“总线错误”

我有一台专用于MySQL服务器的Linux机器,负载相当高。 今天我醒了,惊恐地发现数据库服务器已经closures。 我可以通过SSH连接到它,但它是响应bus error的每一个命令: [root@r1304 home]# ls Bus error [root@r1304 home]# tail /var/log/messages Bus error [root@r1304 home]# reboot Bus error [root@r1304 home]# free -m Bus error [root@r1304 home]# chkdisk Bus error 我去了数据中心,并做了一个硬复位,似乎有帮助,但经过半个小时的情况再次出现,现在我甚至不能通过SSH连接了。 任何想法这可能是什么? 如何诊断这样的问题以及可能的修复方法? 服务器有32 GB的RAM,2xSSD驱动器和软件RAID 更新根据Zabbix,当MySQL死亡,进程的数量说增加drammaticaly,直到我做了一个硬复位。 那可能是什么? 进程数