Articles of linux

如何实现到同一台服务器的多个NFS / TCP连接?

我试图通过一个10Gbps链路来最大化Linux客户端和单个NFS服务器之间的NFS / TCP带宽。 尽pipe每个NFS挂载都有自己的设备(主要/次要),但是一切都归结为单个TCP连接,这是一个瓶颈。 使用iperf和多个TCP连接,我可以达到〜8Gbps,但NFS卡在一个单一的TCPstream,并限制在〜2Gbps(没有TCP调整呢)。 在Solaris上,有系统设置rpcmod:clnt_max_conns ,它允许设置系统可以使用多less并发的TCP连接到单个NFS服务器。 有没有一个相当于Linux的方法呢? 作为一种解决方法,我知道我可以在NFS服务器上设置多个IP,然后在它们上对这些挂载点进行负载平衡,但这不是最佳的。

Linux内核lowmem使用情况

我正在debugging一个问题,我们正在耗尽内核内存不足,我正在尝试确定谁正在使用内核的低内存,这有助于解决问题。 以下是meminfo输出: MemTotal: 16622556 kB MemFree: 11429420 kB Buffers: 146268 kB Cached: 2898228 kB RAMCached: 1213120 kB Allowed: 4155639 Pages Free: 2857355 Pages Available: 3317413 Pages SwapCached: 0 kB Active: 3004716 kB Inactive: 1694188 kB HighTotal: 16045340 kB HighFree: 11419648 kB LowTotal: 577216 kB LowFree: 9772 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 8 […]

Linux:echo 3> / proc / sys / vm / drop_caches需要几小时才能完成

我有一台色卡司N8900 NAS,它是基于Linux的文件服务器,通过NFS向六个客户端提供文件。 出于某些原因,Thecus支持尚未解释,它运行一个脚本,每60秒检查/ proc / meminfo,如果磁盘caching超过可用RAM的50%,他们做一个“echo 3> / proc / sys / vm / drop_caches “命令来刷新caching。 撇开是否合理的问题,实际的“echo 3> / proc / sys / vm / drop_caches”命令可能需要几个小时才能完成,这对我来说似乎太长了。 最大的问题是,当发生这种情况时,机器上的负载就会像磁盘利用率一样激增,从而使得所有的NFS通信都被抓取,直到命令最终完成,此时事情又会有所反应。 NAS本身有16个内存,7个raid6configuration的驱动器(加上热备份),根本没有驱动器问题(根据SMARTtesting)。 所以问题是:什么会导致drop_caches命令这么久?

获取日记以发送特定事件的电子邮件

我发现这些syslogd的解决scheme发送电子邮件在某些事件,如local0.crit或local1.err 我怎样才能使syslogd电子邮件特定的日志消息给我? http://www.johnandcailin.com/blog/john/how-setup-real-time-email-notification-critical-syslog-events 但是,我的系统在systemd上运行,因此使用日志进行系统日志的目的。 我怎样才能实现基于事件的电子邮件没有一个cron运行,每5分钟检查所有日志,并将日志发送到一个地址或类似?

TCP ack暂停,然后恢复,然后再次暂停。 为什么?

我想在我的应用程序中寻找降低数据传输速率的原因。 我有12个embedded式系统和一个Linux服务器。 embedded式系统通过交换机在以太网链路上通过TCP发送数据到服务器。 以下是Wireshark捕获一个板卡上的stream量的TCP StreamGraph。 正如你所看到的,数据传输发生在大约5.8MBit / s直到大约0.25秒。 这与我所预期的embedded式系统一样快。 在此之后,延期被插入转移。 以下显示了该图的一个特写: 标有ACK的底部的阶梯形曲线显示服务器在任何给定时间已经确认了多less数据。 标有RWIN的相应曲线显示了数据卡上的缓冲区有多less空间。 标记为“发送数据”的较小垂直段是实际发送的数据包。 在A点,服务器以尽可能快的速度发送数据,但是持续23ms,服务器不会发送数据。 允许embedded式系统在不等待ACK的情况下发送RWIN,但是它不这样做,因为它需要保持发送的数据,直到它们被发送(如果需要重新发送),发送缓冲区空间是有限。 然后,在B点,所有接收到的数据立即被确认,正常的确认和发送恢复2.5ms,然后再发生一次暂停。 Wireshark捕获是由一台不同的PC机完成的,该PC连接到交换机上的一个端口,该端口被设置为镜像在embedded式系统所连接的端口上发送和接收的所有数据。 Linux服务器运行一个Java应用程序来处理数据并将它们存储在磁盘上。 它没有显示已经超出了CPU的迹象。 操作系统是具有默认networking设置的Ubuntu Server 12.04。 我可以看到,我可能会从在embedded式系统中分配更多的发送缓冲区空间中获益,以匹配Linux服务器中的接收窗口空间量,但这似乎并不是限制因素。 我的问题是: 什么可能是Linux服务器暂停ACK的原因,即使它显然能够收到的一切就好了? 我怎么去debugging呢?

基于进程的IPstream量到不同的默认路由/接口

我试图确定是否有可能通过特定接口select性地路由来自进程或进程组的IP数据包,而所有其他数据包通过另一个接口进行路由。 也就是说,我希望来自/usr/bin/testapp所有stream量都通过eth1路由,而所有其他数据包都通过eth0 。 这种情况下的报文可以是TCP,UDP,ICMP等,可以由最终用户configuration使用不同的端口。 因为我不能轻易地强制有问题的过程绑定到特定的接口,所以我试图通过路由实现相同的结果。 这可能吗? —编辑— 在这里和其他许多地方通过一个有用的build议是基于UID标记数据包; 这不是真正的目标。 目标是根据进程标记/过滤/路由而不pipe用户 。 也就是说,如果alice , bob和charlie都运行自己的/usr/bin/testapp实例, 所有三个实例的所有数据包应该通过eth1而来自系统的所有其他数据包应该通过eth0 。 请注意,通过源/目标端口,用户名/ UID等标记是不够的,因为各种用户可能运行testapp ,他们可能会在他们自己的~/.config/testapp.conf或其他设置不同的端口。 问题是关于过程的过滤。 一个可用的选项,虽然我不知道它是多么有帮助,但是在本地二进制文件中使用基于/bin/(ba|z)?sh的包装。 —编辑— 我指的是在运行现代Linux内核的系统上进行路由,例如4.0或更高版本。 如果iproute2 , nftables , conntrack和类似工具之外还有软件依赖性,我愿意探索开源解决scheme,尽pipe基本工具是可取的。

确保没有控制台会话(Linux)

在bash作为默认shell的Linux系统上,我想用下列条件configuration自动注销: 控制台会话(VGA,串口,远程KVM等)在指定的时间段后被注销 即使运行“非空闲”进程(如top控制台会话也会被注销 SSH会话不以这种方式注销 目的是确保无论是通过VGA还是通过远程KVM或串口进行的控制台会话都不会被意外login。 我想确保我们的网站。 由于第二个项目符号, TMOUT环境variables并不完全满足我的需求。 我可以制定一个快速的解决scheme来杀死某个年龄段的login进程,但这似乎很脆弱,容易产生副作用。 我可以寻找shell的/proc/$PID/fd/0链接到/dev/tty* 。 不过,这似乎是一个必须已经解决的问题。 任何指针如何实现这一点非常感谢。

如果我把它设置为从现在开始几分钟,Cron任务不会执行

我试图通过从当前时间设置几分钟(比如说10)来testing我的cron作业。 例如,如果现在是下午5点,我设定: 10 17 * * * dotnet <full path to .net core dll> 当时钟下午5:10时,作业不执行。 另一方面,如果我将cron作业设置为每分钟执行一次: * * * * * dotnet <full path to .net core dll> 它每分钟都成功执行。 我查了一下为什么bash命令不执行的原因 。 不幸的是,没有任何build议可以解释为什么一个人工作,另一个人不工作。 操作系统:Ubuntu AWS实例注意: date命令给我正确的时间作为参考。

在CIFS服务器上挂载Linux用户主目录

我想知道在Linux下,用户通过Active Directoryauthentication的CIFS服务器挂载用户主目录的经验。 优选地,挂载将在login时完成,而不是在引导(或仅挂载/ home)上挂载每个主目录,并且将被Kerberos / SMBauthentication和授权。 到目前为止,我已经看了两个解决scheme: * Automount – NFS结转(目前在混合Solaris环境中)。 据说工作,但没有看到CIFS的用户目录挂载的例子,只有auto_direct。 而且不知道winbind与AD自动configuration(通过SFU或rfc2307) * pam_mount – 刚刚离开testing版,需要mount.cifs和umount.cifs的suid。 也不适用于SSH。 注销后还容易挂载目录。 每个人都有同样的问题? 你能提供任何陷阱或麻烦你遇到? 任何与FUSE或用户空间工具的经验?

Exim反向散射

我的继电器之一已经在backscatter.org上列出,现在我试图configuration我们现有的configuration只发送反弹到本地用户只。 有谁知道我如何处理这个问题? 我在我的acl_check_rcpt中添加了以下规则 deny senders = : dnslists = ips.backscatterer.org log_message = $sender_host_address listed at $dnslist_domain message = Backscatter: $dnslist_text 这足够不会再被列出吗?