标签: linux-networking

传输 15TB 的小文件

我正在将数据从一台服务器归档到另一台服务器。最初我开始了rsync一份工作。仅为 5 TB 数据构建文件列表就花了 2 周时间,而传输 1 TB 数据又花了一周时间。

然后我不得不终止这项工作,因为我们需要在新服务器上停机一段时间。

已经同意我们将其压缩,因为我们可能不需要再次访问它。我正在考虑将其分成 500 GB 的块。在我tar之后,我打算将它复制到ssh. 我正在使用tarpigz但它仍然太慢。

有没有更好的方法来做到这一点?我认为两台服务器都在 Redhat 上。旧服务器是 Ext4,新服务器是 XFS。

文件大小从几 kb 到几 mb 不等,5TB 中有 2400 万个 jpeg。所以我猜测 15TB 大约为 60-80 百万。

编辑:在玩了几天 rsync、nc、tar、mbuffer 和 pigz 之后。瓶颈将是磁盘 IO。由于数据跨 500 个 SAS 磁盘和大约 2.5 亿个 jpeg 进行条带化。但是,现在我了解了我将来可以使用的所有这些不错的工具。

linux file-transfer archive linux-networking

80
推荐指数
4
解决办法
2万
查看次数

在 iptables 中打开一系列端口的正确方法是什么

我遇到过以下建议的文章:

iptables -A INPUT -p tcp 1000:2000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

其他人则表示上述方法不起作用,iptables 仅支持带有该--multiport选项的多个端口声明。

有没有用iptables打开许多端口的正确方法?

linux iptables linux-networking

68
推荐指数
3
解决办法
17万
查看次数

主机名 - 它们是关于什么的?

我最近“被迫”执行一些系统管理员工作,虽然这不是我绝对喜欢做的事情,但我一直在阅读、试验和学习很多东西。

我一直无法掌握服务器配置的一个基本方面 -主机名

例如,在 Ubuntu 中,应该像这样设置主机名(根据Linode 库):

echo "plato" > /etc/hostname
hostname -F /etc/hostname
Run Code Online (Sandbox Code Playgroud)

文件:/etc/hosts

127.0.0.1        localhost.localdomain        localhost
12.34.56.78      plato.example.com            plato
Run Code Online (Sandbox Code Playgroud)

我假设这plato是一个任意名称,即plato.example.comFQDN。

现在我的问题是:

  • 是强制性的吗?
  • 为了什么目的?
  • 它在哪里需要/使用?
  • 为什么我不能将“localhost”定义为每台机器的主机名?
  • 我是否必须为plato.example.comFQDN设置 DNS 条目?
  • 应该plato.example.com用作我的 IP 的反向 DNS 条目吗?

另外,是否有选择主机名的“最佳实践”?我见过人们使用希腊字母、行星名称甚至神话人物......当我们用完字母/行星时会发生什么?

如果这是一个愚蠢的问题,我很抱歉,但我从来没有对网络配置过于热情。

linux hostname linux-networking fqdn

58
推荐指数
4
解决办法
3万
查看次数

如何增加somaxconn的价值?

我可以通过以下方式检查它的值cat /proc/sys/net/core/somaxconn

如果我简单地改变它可以echo 1024 > /proc/sys/net/core/somaxconn吗?

linux-networking

52
推荐指数
1
解决办法
7万
查看次数

e1000e 意外重置适配器/检测到硬件单元挂起

我有一台戴尔 1U 服务器,带有 Intel(R) Xeon(R) CPU L5420 @ 2.50GHz,8 核,在 x86_64 上运行 Ubuntu 服务器内核版本 3.13.0-32-generic。它具有双 1000baseT 网卡。我已将其设置为将数据包从 eth0 转发到 eth1。

我注意到在我的 kern.log 文件中它一直挂着然后休息。这经常发生。这种情况每隔几秒钟发生一次,然后可能几分钟就可以了,然后每隔几秒钟就会恢复。

这是日志文件转储:

 [118943.768245] e1000e 0000:00:19.0 eth0: Detected Hardware Unit Hang:
 [118943.768245]   TDH                  <45>
 [118943.768245]   TDT                  <50>
 [118943.768245]   next_to_use          <50>
 [118943.768245]   next_to_clean        <43>
 [118943.768245] buffer_info[next_to_clean]:
 [118943.768245]   time_stamp           <101c48d04>
 [118943.768245]   next_to_watch        <45>
 [118943.768245]   jiffies              <101c4970f>
 [118943.768245]   next_to_watch.status <0>
 [118943.768245] MAC Status             <80283>
 [118943.768245] PHY Status             <792d>
 [118943.768245] PHY 1000BASE-T Status  <7800>
 [118943.768245] PHY Extended Status    <3000>
 [118943.768245] PCI Status             <10> …
Run Code Online (Sandbox Code Playgroud)

networking ethernet nic forwarding linux-networking

48
推荐指数
3
解决办法
7万
查看次数

你怎么知道服务器实际上做了什么?

我收到了 3 个 Linux 机器,1 个正面装有 apache,另外 2 个,据我所知,并没有做太多事情。全部在 Redhat 上运行。

问题很简单:我如何知道服务器实际上在做什么?零文档可从创建者处获得。

linux redhat linux-networking client-server

43
推荐指数
6
解决办法
4545
查看次数

如何减少 TIME_WAIT 中的套接字数量?

Ubuntu 服务器 10.04.1 x86

我有一台在 nginx 后面带有 FCGI HTTP 服务的机器,它为许多不同的客户端提供许多小的 HTTP 请求。(高峰时段每秒大约 230 个请求,平均响应大小为 650 字节,每天有数百万个不同的客户端。)

结果,我有很多套接字,挂在 TIME_WAIT 中(使用下面的 TCP 设置捕获图表):

时间的等待

我想减少套接字的数量。

除了这个我还能做什么?

$ cat /proc/sys/net/ipv4/tcp_fin_timeout
1
$ cat /proc/sys/net/ipv4/tcp_tw_recycle
1
$ cat /proc/sys/net/ipv4/tcp_tw_reuse
1

更新:有关机器上实际服务布局的一些详细信息:

客户端-----TCP-socket--> nginx(负载均衡器反向代理) 
       -----TCP-socket--> nginx (worker) 
       --domain-socket--> fcgi-software
                          --single-persistent-TCP-socket--> Redis
                          --single-persistent-TCP-socket--> MySQL (其他机器)

我可能应该切换负载平衡器 --> 工作线程连接到域套接字,但关于 TIME_WAIT 套接字的问题仍然存在——我计划很快在单独的机器上添加第二个工作线程。在这种情况下将无法使用域套接字。

ubuntu nginx linux-networking high-load

41
推荐指数
1
解决办法
8万
查看次数

iptables 和多个端口

这对我不起作用:

# iptables -A INPUT -p tcp --dports 110,143,993,995 -j ACCEPT

iptables v1.4.7: unknown option `--dports'
Try `iptables -h' or 'iptables --help' for more information.
Run Code Online (Sandbox Code Playgroud)

但是在手册页中,有一个选项--dports......有什么想法吗?

iptables linux-networking

39
推荐指数
2
解决办法
7万
查看次数

删除 iptables 链及其所有规则

我有一个附加了许多规则的链,例如:

> :i_XXXXX_i - [0:0]
> -A INPUT -s 282.202.203.83/32 -j i_XXXXX_i 
> -A INPUT -s 222.202.62.253/32 -j i_XXXXX_i 
> -A INPUT -s 222.202.60.62/32 -j i_XXXXX_i 
> -A INPUT -s 224.93.27.235/32 -j i_XXXXX_i 
> -A OUTPUT -d 282.202.203.83/32 -j i_XXXXX_i 
> -A OUTPUT -d 222.202.62.253/32 -j i_XXXXX_i 
> -A OUTPUT -d 222.202.60.62/32 -j i_XXXXX_i 
> -A OUTPUT -d 224.93.27.235/32 -j i_XXXXX_i
Run Code Online (Sandbox Code Playgroud)

当我尝试删除此链时:

iptables -X XXXX

但得到了类似的错误(之前尝试过 iptables -F XXXXX):

iptables:链接太多。

有没有一种简单的方法可以通过一次命令删除链?

linux iptables linux-networking

39
推荐指数
5
解决办法
14万
查看次数

如何找出网络上所有机器的mac地址

是否有一些简单的方法可以找出我网络上所有机器的 mac 地址,而不是对每个机器进行 SSH,ifconfig | grep HWaddr如果网络上有 300 台机器,我真的需要一些简单的解决方案。

find grep awk sed linux-networking

31
推荐指数
5
解决办法
9万
查看次数