Articles of linux

解释/ proc / diskstats中的读取,写入和总IO时间

我注意到,当我看到/proc/diskstats的输出时,花费在阅读上的总时间,写入的总时间和执行IO的总时间之间存在差异。 例如,我在/proc/diskstats中看到一个条目: $ cat /proc/diskstats … 8 0 sda 944150584 590524 235547588959 780672196 833280352 534699043 322507689696 3472000824 1 812190100 4246357772 … 根据https://www.kernel.org/doc/Documentation/iostats.txt的文档, 字段4 – 读取的毫秒数这是所有读取花费的总毫秒数(从__make_request()到end_that_request_last())。 字段8 – 写入毫秒数这是所有写入所花费的总毫秒数(从__make_request()到end_that_request_last())的测量值。 字段10 – 执行I / O所花费的毫秒数只要字段9非零,此字段就会增加。 因此,我认为第十个领域将是第四个和第八个领域的总和,因为我认为总的IO时间是阅读时间和写作时间的总和。 但是,我从来没有注意到这种情况,而且我一直观察到第四和第八场的总和大于第十场(例如,在上面的行(780672196 + 3472000824 – 812190100 =我想知道如果有人能解释为什么这些数字是不同的,似乎第十个领域是试图捕捉一些不同于第四和第八领域的总和。

有没有什么办法来减缓Linux上的硬盘写入?

我想要在我的应用程序上支持慢速磁盘存储的影响。 为了做到这一点,我想减less写入存储。 我可以通过一些configuration来实现吗?还是有专门的工具吗?

nomerge在Linux系统中意味着什么?

我们可以通过发出“iostat -x -d”来看到一些参数,rrqm / s和wrqm / s代表每秒I / O请求的合并。 有一个控制I / O合并的内核参数: / SYS /类/块/设备名称/队列/ nomerges 根据内核文件: 这使用户可以禁用块层中的IO合并请求所涉及的查找逻辑。 默认情况下(0)启用所有合并。 当设置为1时,只会尝试简单的一击合并。 当设置为2时,将不会尝试合并algorithm(包括一次或更复杂的树/散列查找)。 0和2的含义是容易理解的,但是当涉及到“一击”的时候,我search了一下,但没有对它进行具体的语义定义。 所以请帮忙解释一下nomerges的含义是什么。 谢谢。

如何知道设备磁盘上是否有某些数据已经存在?

检查磁盘包含文件系统的简单方法是: mount /grid/sdb /mnt 如果sdb或其他/ dev / sdx具有文件系统,则挂载将成功,否则挂载。 可能文件系统存在! 但这是一个难看的方法来检查。 什么其他优雅的select来检查磁盘上的文件系统? 我的目标是检查文件系统是否已经在磁盘上configuration为/ dev / sdb – / dev / sdx。

保持两个或更多数据库同步的最佳方法?

我有两个PowerDNS服务器,并configuration区域logging本地存储在mariaDB。 什么是同步这两个数据库的最佳方法? 注意 : 我想扩展这个以后使用5台服务器。 目前,数据将被添加到DNS服务器1,只会从DNS服务器1复制到DNS服务器2.如果我有更多的DNS服务器,我希望如果DNS服务器1出现故障,则在DNS服务器2上创build的内容会提供DNS服务器3等,当DNS 1再次启动时,它将与DNS服务器2同步。 还有一个表不会被同步:那就是PowerDNS用来存储服务器IP地址的表格等等。 我的服务器只能在本地访问mariaDB,所以远程计算机访问mariaDB它将不得不ssh隧道。

处理声明使用大量内存,但“空闲”表示内存仍然空闲

我已经看到了与此相反的情况,但这令人费解。 总之,我有一个过程,%MEM声称在使用'ps'和'top'时使用74%的内存。 但是,“免费”显示我只使用了32%的可用内存。 这是'top'的输出: top – 18:25:49 up 203 days, 14 min, 1 user, load average: 3.48, 3.75, 3.79 Tasks: 349 total, 1 running, 347 sleeping, 1 stopped, 0 zombie Cpu(s): 10.3%us, 4.7%sy, 0.0%ni, 75.1%id, 6.5%wa, 0.0%hi, 3.4%si,0.0%st Mem: 189.054G total, 188.280G used, 793.473M free, 253.570M buffers Swap: 4095.996M total, 967.234M used, 3128.762M free, 126.370G […]

Windows Linux子系统保持运行并加载启动

我设法让WLS安装了一个有效的LAMP环境。 现在我已经注意到,如果我closuresterminal,Apache停止运行。 为了让我从本地加载网站,我需要加载一个terminal,并重新启动Apache。 有没有办法启动WLS作为启动时的后台进程,所以我不必经常重新启动Apache? 谢谢

安装后拒绝SSL连接

我已经安装了apache2和OpenSSL 我这样安装OpenSSL: sudo a2enmod ssl sudo mkdir /etc/apache2/ssl sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt sudo chmod 600 /etc/apache2/ssl/* sudo nano /etc/apache2/sites-enabled/***.ru.conf configuration完文件后 文件:/etc/apache2/sites-enabled/***.ru.conf <VirtualHost *:80> ServerAdmin office@***.eu ServerName ***.ru ServerAlias www.***.ru DocumentRoot /var/www/***.ru/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:443> ServerAdmin office@***.eu ServerName ***.ru:443 ServerAlias www.***.ru DocumentRoot […]

我如何测量两台机器之间的确切时差(偏移量)?

两台Linux机器之间的时间差如何精确测量? 我听说“Ping”给了RTT与OS影响的关联,因此在纳秒级别上不准确? 如果是这样,还有什么需要测量基于Linux的系统或Raspi中两台机器之间的时间差(偏移)?

Linux上的长页面分配停滞 – 为什么会发生这种情况?

我有一个问题(我可以可靠地重现)在一堆Linux主机上,在一个进程积极地占用内存后,系统变得完全没有响应。 我在内核日志中看到这样的事情: 2017-09-14 19:53:51.252365 kernel: hyperkube: page allocation stalls for 62933ms, order:0, mode:0x14201ca(GFP_HIGHUSER_MOVABLE|__GFP_COLD), nodemask=(null) 2017-09-14 19:53:51.252402 kernel: hyperkube cpuset=kube-proxy mems_allowed=0 2017-09-14 19:53:51.252440 kernel: CPU: 1 PID: 1438 Comm: hyperkube Not tainted 4.11.9-coreos #1 2017-09-14 19:53:51.252478 kernel: Hardware name: Xen HVM domU, BIOS 4.2.amazon 11/11/2016 2017-09-14 19:53:51.252512 kernel: Call Trace: 2017-09-14 19:53:51.252591 kernel: dump_stack+0x63/0x90 2017-09-14 19:53:51.252628 […]