Questions tagged «linux»

这些问题通常与Linux有关-并非特定于特定发行版。如果问题恰好在Linux环境中,请在问题正文中指定Linux发行版,但不要使用/ linux标记。


1
我对系统“ iowait”的基本假设不成立
我的基本假设是,当进程的唯一限制因素是磁盘和CPU时,总的系统“ iowait” + CPU使用率应至少等于一个逻辑CPU的100%。(在其他情况下,这将不成立。例如,使用来下载文件时wget,网络通常是限制因素)。 一个简单的测试违反了这一假设。这是预期的吗?如果可以预期,是否有一些条件可以期望我的假设成立? 这里有一些有关“ iowait”的背景:CPU如何知道有IO待处理? 这里的答案引用了违反直觉的想法,即累积的iowait“在某些情况下可能会减少”。我想知道我的简单测试是否会触发这种无证的情况? 更新:请跳到答案。 答案比我最初使用的答案更简单。我保留了下面的原始问题。原始问题可能会显示一些其他详细信息。 原始问题 在简短测试中,我用于dd请求内核生成随机字节,并将其写入文件。我在dd内部运行命令perf stat,只是为了计算内核内部花费的CPU时间。我还在内部运行它perf trace -s,以报告在内部花费的时间write()。同时,我vmstat 5在另一个终端上运行,以查看系统“ iowait”。 我希望至少将整个CPU视为“非空闲”状态,即100%的时间它正在运行或已暂停但正在等待IO(“ iowait”状态)。不是。 (此外,我期望看到“ iowait”时间大致与在write()中花费的时间相匹配。但是似乎没有这样做。) 详细结果和测试环境如下所示。还显示了替代测试,我的假设成立了。注意:有必要在perf stat内部运行perf trace,而不是相反。在此进行详细说明:运行“ perf trace-s”时,“ perf stat”(和“ time”!)显示的结果不正确吗? 关于“ iowait”的背景信息 以下是手册sar页中的定义: %iowait: 在系统有未完成的磁盘I / O请求的过程中,一个或多个CPU空闲的时间百分比。 因此,%iowait意味着从CPU的角度来看,没有可运行的任务,但是至少有一个I / O正在运行。iowait只是空闲时间的一种形式,无法安排任何时间。该值在指示性能问题上可能有用也可能没有用,但是它确实告诉用户系统处于空闲状态,并且可能需要进行更多工作。 https://support.hpe.com/hpsc/doc/public/display?docId=c02783994 还有更长的文章:了解I / O等待(或为什么可以选择0%Idle)。这说明了如何从内核代码清楚地看到定义。代码有所更改,但思路仍然很明确: /* * Account for idle time. * …
13 linux 

2
/ dev / console是做什么用的?
从这个答案到Linux:/ dev / console,/ dev / tty和/ dev / tty0之间的区别 从 文档中: /dev/tty Current TTY device /dev/console System console /dev/tty0 Current virtual console 在过去/dev/console,系统管理员控制台是过去的。TTY是用户连接到服务器的串行设备。现在 /dev/console和/dev/tty0代表当前显示,通常是相同的。您可以通过添加覆盖它,例如 console=ttyS0到grub.conf。在那之后你/dev/tty0是一个显示器,/dev/console是/dev/ttyS0。 通过“ 系统控制台 ”,/dev/console看起来像是文本物理终端的设备文件,就像/dev/tty{1..63}虚拟控制台的设备文件一样。 在我看来,“ /dev/console和/dev/tty0表示当前显示的内容通常是相同的” /dev/console也可以是虚拟控制台的设备文件。/dev/console似乎/dev/tty0比like /dev/tty{1..63}(/dev/tty0是当前处于活动状态的虚拟控制台,可以是任何一个/dev/tty{1..63})。 什么/dev/console啊 这有什么用途? 不/dev/console玩了Linux内核相同作用/dev/tty的过程?(/dev/tty是进程的进程会话的控制终端,可以是pts,/dev/ttyn其中n1到63,或者更大?) 另一个答复提到: 内核文档/dev/console将字符设备指定为5:1。打开此字符设备将打开“主”控制台,该控制台是控制台列表中的最后一个tty。 难道“控制台列表”是指所有console=的在启动选项? “ /dev/console作为5:1的字符设备”,是否表示/dev/console物理文本终端(即系统控制台)的设备文件?(但同样,我在上面引用的第一条回答/dev/console可能与/dev/tty0不是物理文本终端,而是虚拟控制台的相同) 谢谢。
13 linux  ubuntu  tty  console  pts 

2
Netcat-如何使用IPv6地址在TCP端口上侦听?
我正在使用netcat(v1.10-41.1)的最新版本,该版本似乎没有用于IPv6地址的选项(与-6的旧版本中的一样nc)。 如果输入nc -lvnp 2222并使用来检查监听端口netstat -punta,则服务器似乎2222仅在监听IPv4地址的端口上: tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 2839/nc tcp6无效,例如我的apache2服务器: tcp6 0 0 :::80 :::* LISTEN -
13 linux  netcat 


2
在bash中的文件中执行原子写操作
通过庆典会后文件,这个问题,这一个它仍然不是很清楚,我哪能执行原子写入(追加)操作在bash文件。我有一个在多个实例中运行的脚本,有时必须将数据写入文件: echo "$RESULT" >> `pwd`/$TEMP_DIR/$OUT_FILE 如何使所有同时运行的脚本的所有写操作都变为原子文件(这样,一个实例中的数据不会与另一个实例中的数据重叠)?

1
如何获取有关套接字文件的更多信息?
对于这样的套接字文件: # ls -alti socket 14112 srw------- 1 root root 0 Nov 15 20:03 socket # cat socket cat: socket: No such device or address 由于cat命令在这里没有用,是否有任何方法可以获取有关套接字文件的更多信息?例如正在侦听哪个端口?等等

2
如何从Unix域套接字被动捕获(AF_UNIX套接字监视)?
可以使用tcpdump/ 捕获TCP / IP和UDP,dumpcap并生成一个pcap / pcapng文件,该文件可以提供给Wireshark进行进一步分析。命名的Unix域套接字是否存在类似的工具?(不过,适用于抽象套接字的通用解决方案也不错。) strace仅凭现状是不够的,要过滤Unix域套接字I / O并不容易。一个使用代理socat或类似的也不适宜为目标,是对现有打开的程序被动分析。 如何获得可在Wireshark中用于分析的数据包捕获?示例协议应用程序是X11(Xorg,我当前的应用程序)和cURL / PHP(HTTP)。我CONFIG_UNIX_DIAG在Linux内核中看到了一个选项,这有什么用吗?

1
设置顶部的默认颜色
如何设置默认颜色top?现在有一个我几乎看不到的红色。您可以使用来从单色切换为彩色,z或者使用进行更彻底的设置Z。但是这些设置都没有坚持。 如何永久设置颜色?
13 linux  terminal  colors  top 

1
如何记录已审核的流程及其后代的所有系统调用
我可以 auditctl -a always,exit -S all -F pid=1234 要记录由pid 1234完成的所有系统调用,并且: auditctl -a always,exit -S all -F ppid=1234 对于它的孩子们,但是我又该如何照顾他们的孙子及其子孙(当前和将来)? 我不能依靠确实改变的(e)uid /(e)gid。 (请注意,使用strace也不是一种选择)

2
网络管理员未列出wifi
当我使用NetworkManager命令工具扫描无线网络时,输出为空。 root@radxa:~# nmcli dev wifi list SSID BSSID MODE FREQ RATE SIGNAL SECURITY ACTIVE root@radxa:~# 但如果使用iwlist,则扫描正常: root@radxa:~# iwlist wlan0 scan Cell 01 - Address: 78:A1:06:7F:CF:C9 ESSID:"olivia" Protocol:IEEE 802.11bgn Mode:Master Frequency:2.462 GHz (Channel 11) Encryption key:on Bit Rates:300 Mb/s IE: WPA Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : …

2
可能看到死程序吗?
在中man ps,它明确指出了进程在Linux上可能具有的不同状态。 D Uninterruptible sleep (usually IO) R Running or runnable (on run queue) S Interruptible sleep (waiting for an event to complete) T Stopped, either by a job control signal or because it is being traced. W paging (not valid since the 2.6.xx kernel) X dead (should never be …

3
我怎么知道tmux会话的名称?
最近,我开始使用tmux。我觉得很好,但是在理解此应用程序时仍然遇到问题。我的基本问题之一是:如何(从命令行)知道tmux我登录的会话的名称是什么?如果我登录了某个tmux会话,它将告诉我其名称。但是,如果我没有登录到tmux会话,它将不打印任何内容或出现某种错误。
13 linux  tmux 

5
导致I / O错误的特殊文件
如果要读取的基本SQLite DB文件失败(导致I / O错误),我想自动测试某个软件是否响应预期。确实是几天前在客户那里发生的。我们手动修复了它,但是现在我想创建自动代码来修复它,并且需要访问损坏的文件来进行测试。 由于Unix中的所有内容都是一个文件,因此我怀疑可能存在一个特殊文件,当尝试读取该文件时总是会导致I / O错误(例如,在/ dev中)。 一些类似的文件(imo)将是: /dev/full 如果您尝试写入,则始终显示“设备上没有剩余空间” /dev/null 和 /dev/zero 所以我认为只需要有一个这样的文件(但是还没有找到)。 有谁知道这样的文件或任何其他方法可以让我获得所需的结果(故意有问题的分区图像,使用LD_PRELOAD封装open()的包装程序,等等)? 去这里最好的方法是什么?
13 linux  devices  io  testing 

4
笔记本电脑用户应该从ext4切换到btrfs吗?
与此相关。 我想利用操作系统切换来升级到BTRFS。 BTRFS声称提供了很多功能(数据丢失的弹性,RAID的自我修复,元数据和数据的校验和,压缩,快照)。但是,与fsync密集型程序(例如,dpkg我知道eatmydata和糟糕的apt-btrfs-snapshot程序)一起使用时,速度很慢,而且我不会设置RAID:p。 EXT4仅允许对元数据进行校验和,并且不压缩数据。 在6年中,由于硬盘损坏(飞行后),我不得不重新安装操作系统两次。第一次导致笔记本电脑无法启动,第二次损坏是由于电影损坏,然后是对OS二进制文件的md5sum检查而确定的。(SMART告诉我磁盘是正常的)。目前,这头马虎的行为很奇怪。我不知道应该归咎于硬件还是软件,但是我怀疑硬件(它们都是在飞行后立即开始的)。 您是否会因为数据压缩和校验和而建议改用笔记本电脑的BTRFS,还是应该坚持使用EXT4? (我不在乎哪个变量相对于“最佳”,但我几乎没有使用BTRFS的经验,并希望获得一些反馈) 编辑: 让我们更清楚一点:我知道,BTRFS仍被标记为实验性的,但是SUSE表示现在不再应该这样做了。Oracle也是如此(我知道Oracle是谁)。大量发行版已经建议安装BTRFS,其中大多数计划在未来几个月内切换到BTRFS。 两个事实: 备份损坏的数据毫无价值。我不明白为什么我似乎是唯一一个要打扰的人。那不是常识吗?与此同时: 别告诉我应该备份:我已经备份了。 不要再暗示备份就足以保证我的数据安全,除非您愿意给我TB的可用空间来进行数年的备份。 损坏的文件= / => Linux抱怨。所以: 不要仅仅因为操作系统正在启动就假设您的系统/数据是理智的。 我希望您能理解,我喜欢(元)数据校验和,而不是过度设计和piece肿的软件,因为它不方便执行BTRFS来检查数据完整性。 现在,我不是要问哪个FS更好吗?问题是,考虑到我定期进行备份,BTRFS是否仍处于实验性阶段,无法用于其数据完整性检查功能,还是应该坚持使用EXT4?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.