我正在将数据从一台服务器归档到另一台服务器。最初我开始了rsync
一份工作。仅为 5 TB 数据构建文件列表就花了 2 周时间,而传输 1 TB 数据又花了一周时间。
然后我不得不终止这项工作,因为我们需要在新服务器上停机一段时间。
已经同意我们将其压缩,因为我们可能不需要再次访问它。我正在考虑将其分成 500 GB 的块。在我tar
之后,我打算将它复制到ssh
. 我正在使用tar
,pigz
但它仍然太慢。
有没有更好的方法来做到这一点?我认为两台服务器都在 Redhat 上。旧服务器是 Ext4,新服务器是 XFS。
文件大小从几 kb 到几 mb 不等,5TB 中有 2400 万个 jpeg。所以我猜测 15TB 大约为 60-80 百万。
编辑:在玩了几天 rsync、nc、tar、mbuffer 和 pigz 之后。瓶颈将是磁盘 IO。由于数据跨 500 个 SAS 磁盘和大约 2.5 亿个 jpeg 进行条带化。但是,现在我了解了我将来可以使用的所有这些不错的工具。
我遇到过以下建议的文章:
iptables -A INPUT -p tcp 1000:2000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
其他人则表示上述方法不起作用,iptables 仅支持带有该--multiport
选项的多个端口声明。
有没有用iptables打开许多端口的正确方法?
我最近“被迫”执行一些系统管理员工作,虽然这不是我绝对喜欢做的事情,但我一直在阅读、试验和学习很多东西。
我一直无法掌握服务器配置的一个基本方面 -主机名。
例如,在 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.com
FQDN。
现在我的问题是:
plato.example.com
FQDN设置 DNS 条目?plato.example.com
用作我的 IP 的反向 DNS 条目吗?另外,是否有选择主机名的“最佳实践”?我见过人们使用希腊字母、行星名称甚至神话人物......当我们用完字母/行星时会发生什么?
如果这是一个愚蠢的问题,我很抱歉,但我从来没有对网络配置过于热情。
我可以通过以下方式检查它的值cat /proc/sys/net/core/somaxconn
,
如果我简单地改变它可以echo 1024 > /proc/sys/net/core/somaxconn
吗?
我有一台戴尔 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) 我收到了 3 个 Linux 机器,1 个正面装有 apache,另外 2 个,据我所知,并没有做太多事情。全部在 Redhat 上运行。
问题很简单:我如何知道服务器实际上在做什么?零文档可从创建者处获得。
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 套接字的问题仍然存在——我计划很快在单独的机器上添加第二个工作线程。在这种情况下将无法使用域套接字。
这对我不起作用:
# 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
......有什么想法吗?
我有一个附加了许多规则的链,例如:
> :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:链接太多。
有没有一种简单的方法可以通过一次命令删除链?
是否有一些简单的方法可以找出我网络上所有机器的 mac 地址,而不是对每个机器进行 SSH,ifconfig | grep HWaddr
如果网络上有 300 台机器,我真的需要一些简单的解决方案。