几个bacula-fd客户端备份到一个bacula SD(在大规模RAID上使用2G磁盘文件,而不是磁带),通常同时有2-3个。 它工作正常,除了当两个更大的客户端(每个约400-900GB)需要运行完整备份,速度非常慢(通常约200-2500千字节/秒),所以完整备份不会在几天内完成,这是一个问题给我们(所以我们取消它,并增量)。 服务器和客户端位于不同的VLAN /子网中,因此通过另一个带有VLAN和交换机的debian wheezy机器进行路由。 所有机器上的NIC都是1Gbps(有一个主动 – 被动networking绑定 – 失败不会影响速度),交换机也一样。 机器是四核和八核,具有8-64GB RAM,不会进入交换,并具有0.2-2之间的负载,所以我想这不是CPU,I / O或内存不足。 Bacula-SD也在硬件RAID上,似乎没有负载。 当时networking也大多是空闲的,所以不应该是带宽拥塞。 Bacula版本是标准版5.2.6 + dfsg-9,而Linux内核版本也是标准版3.2.60-1 + deb7u3。 似乎传输开始的很好(大约20+兆字节/秒,这是与大量的小文件预计),比一次Send-Q上升,并没有下降几十秒(或分钟) ,并且netstat在“unkn-4”计时器中显示套接字,以指数上升的超时重新启动: # netstat -tpno | grep bacula Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name Timer tcp 0 967688 10.66.3.135:49668 10.66.2.11:9103 ESTABLISHED 2964/bacula-fd unkn-4 (1.86/0/0) tcp 0 0 10.66.3.135:9102 10.66.2.11:54499 […]
我试图在Linux中使用ip netns系列命令来创build一个networking命名空间,我可以运行一个使用UDP广播的程序。 我不需要访问Internet,也不需要访问根名称空间上的任何接口(但是,如果这是实现工作的必要条件,那么这是绝对可以接受的)。 这里是一个Ruby中的示例服务器和客户端(用Ruby 1.9.3进行testing,但我希望它可以在其他版本中使用): #! /usr/bin/env ruby require 'socket' PORT = 5000 case ARGV[0] when 'server' soc = UDPSocket.open begin soc.bind('', PORT) puts "SERVER #{Process.pid} listening on #{PORT}" msg = soc.recv(1) puts "SERVER got msg: #{msg}" ensure soc.close end when 'client' soc = UDPSocket.open begin soc.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true) puts "CLIENT sending message" soc.send('m', 0, […]
我正在build立一个有很多小设备的VPNnetworking(运行OpenWRT)。 在我的使用情况下,设备都是由一个数字标识,我希望他们的IP地址匹配他们的ID(例如:设备号码6将有一个IP在XXX6)。 我知道client-config-dir和ifconfig-push但我不能使用它们,因为我的所有设备使用相同的证书( duplicate-cn已启用)。 这是一个要求,因为为每个设备生成一个证书将是太约束(而且,如果我们添加一个设备在系统中,我们不想改变VPN服务器的configuration) 是否可以在客户端configuration文件中设置IP地址? 我没有发现有关该特定主题的文档中的任何内容……而我所尝试的所有内容都没有成功。 基本上,我想到的是以下几点: 客户端连接到VPN服务器,并要求一个特定的地址(“给我的IP:172.16.0.22”) 如果地址已经被占用,则握手失败。 如果是免费的,客户就会得到他之前问过的地址
我只是在本地networking上build立一个CentOS 5.5机器,试图通过编辑/etc/sysconfig/network文件来修改主机名称。 当我在本地login时,主机名的变化反映出来,似乎工作正常。 当我通过Windows的PuTTY打开一个SSH会话时,我在提示符下看到: [root@? ~]# cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME=mini.local [root@? ~]# sysctl kernel.hostname kernel.hostname = ? [root@? ~]# hostname ? [root@? ~]# hostname -f hostname: Unknown server error 一些其他症状可能有助于解决此问题。 我可以通过IP从我的Windows机器上ping CentOS盒子,但不能ping通主机名。 此外,我的Netgear路由器不显示主机名,当我查看“连接设备”,我看到的MAC地址和适当的IP虽然列出。 我怎样才能使主机名在我的networking中正确传播?
我有一个桥,通过WiFi,使用parprouted来fudge ARP,使路由工作。 有什么像dhcrelay (中继DHCP请求),但NetBIOS(Windows文件和打印共享)名称? 有问题的WiFi网关是一个便宜的贝尔金,所以任何其他select似乎不太可能工作。 更新 :我将使用samba中的nmbd作为WINS服务器。 DHCP应该允许我在客户端自动configurationWINS。
我正在Debian机器上configurationIPv6地址,这就是我的接口文件。 auto eth0 iface eth0 inet6 static pre-up modprobe ipv6 address 2001:23:207:141:0:0:0:0 netmask 112 gateway 2001:23:207:129:0:0:0:0 当我运行命令/etc/init.d/networking restart ,出现以下错误。 SIOCSIFADDR file exist… failed to bring up eth0…
我遇到了一些问题,我的一些服务器不能自动协商1Gb NIC接口的1GB /秒的速度。 这些服务器是运行RHEL 5的Dell R610连接到思科交换机。 我试图从交换机和服务器端强制1Gb的速度,但没有运气。 在服务器上运行ethtool eth0显示1000baseT/Full是“支持的链接模式”,也是“通告的链接模式”的一部分。 我试图强制1Gb接口,首先运行ethtool -s eth0 autoneg off然后ethtool -s eth0 speed 1000 duplex full 。 运行第二个命令后,我得到以下错误: 无法设置新的设置:无效的参数 没有设定速度 不设置双面打印 以前的命令将工作,如果我试图强制速度为100而不是1000.这一直困惑着我,因为我们有其他的R610自动协商罚款到1Gb的速度。
我有几台机器上的http和httpsstream量到我的Linux机器上的eth0上,但是我想把这些stream量转发到eth1,它可以访问互联网。 并且将来自80和443的stream量的免费操作从eth1路由到eth0,以便它们到达创buildweb请求的机器。 我试过下面的iptables命令,但是没有帮助: iptables -A FORWARD -p tcp –dport 80 -o eth1 -j ACCEPT iptables -A FORWARD -p tcp –sport 80 -o eth0 -j ACCEPT 我不知道如何去做这件事。 ===================== ip addr show输出 $ /sbin/ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 […]
我目前正在开发两个应用程序来处理自定义videostream“协议”。 基本上: 服务器从networking摄像头捕捉video帧,将它们分成几部分,然后通过UDP将这些部分发送给客户端。 客户端接收所有的框架部分,并处理所有的“重新sorting”:按照正确的顺序放置这些部分,在旧的框架上存储新的框架,等等……这就是实现“协议”的地方:客户端需要了解他们收到的video数据,这样他们才能正确地重新sorting,并显示一个合适的帧 。 这个机制本身工作得很好(经过相当多的斗争,我会承认)。 但是,现在我的应用程序正在运行,我发现我的客户正在努力接收一些帧部分。 客户端将成功检索第一部分,让我们说n帧,然后只是…挂在recvfrom 。 我不打扰所有的应用程序的细节,但这里有一些统计: 服务器每40,000微秒(25fps)捕获一帧(38,016字节)。 每个帧被分成24个部分(每个部分38,016 / 24 = 1584字节)。 假设我们只有一个客户端。 在networking方面,这意味着: 每40,000微秒,服务器向客户端发送24个缓冲区( sendto )。 每个缓冲区的长度是1584个字节。 另一方面,客户调用recvfrom 24次。 在一秒钟内,服务器可以捕获25帧。 这意味着在1秒内,它会发送25 * 24帧的部分给客户端。 这表示每秒25 * 24 * 1584 = 950,400字节)。 我们还假设客户端总是在服务器发送时进行监听。 现在,用这些费率,客户将能够保持1或2秒。 当应用程序不冻结时,客户端最终会挂起recvfrom ,就好像服务器已经停止了广播。 我添加了一些冗长的服务器,以确保它保持广播,它确实。 几秒钟后,似乎服务器的sendto调用不再达到客户端的recvfrom调用。 我检查了所有与networking有关的代码,因为它非常简单,所以没有太多错误:服务器build立一个缓冲区,调用sendto ,并开始准备下一个缓冲区…客户端只是等待缓冲区。 由于我在编程中找不到解释,所以我开始相信某些东西是卡在networking上的。 在某些地方,似乎有些东西阻止了我的UDP数据包在一段时间后到达客户端。 现在,由于UDP是完全无控制的,所以我找不到从我的程序中检查缓冲区传输的方法。 但是,有没有办法让我看看系统是否传输我的数据包,或者如果它最终达到其中一个极限,并开始丢弃它们? 如果是的话,这个限制机制是什么,有没有一种方法可以configuration我的系统,这样我的应用程序就可以按照我编程的速度工作了? 由于我的应用程序通过回送接口(127.0.0.1:n上的服务器)进行通信,因此我认为添加有关此接口的信息是一个好主意。 我正在运行一个GNU / Linux(内核3.13.0)系统。 $ ifconfig lo […]
我用ssh连接到我的服务器(Centos 7),我尝试ping到localhost: ping 127.0.0.1但是不起作用: ping 127.0.0.1 PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. ^C — 127.0.0.1 ping statistics — 78 packets transmitted, 0 received, 100% packet loss, time 76999ms 在这里我的文件。 networking : default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 主持人 : # nameserver config # IPv4 127.0.0.1 localhost.localdomain localhost 1xx.xxx.xxx.xxx server # # IPv6 ::1 ip6-localhost […]