最近我的朋友告诉我,在有足够内存的 linux 网络服务器上关闭交换是个好主意。我的服务器有 12 GB,目前在峰值负载下使用 4 GB(不包括缓存和缓冲区)。
他的论点是,在正常情况下,服务器永远不会使用其所有 RAM,因此它遇到 OutOfMemory 情况的唯一方法是由于某些错误/ddos/等。因此,如果关闭交换,系统将耗尽内存,最终会导致占用内存的程序(很可能是 Web 服务器进程)和其他一些进程崩溃。如果打开了交换它会同时占用 RAM 和交换空间,最终会导致同样的崩溃,但在此之前,它会卸载关键进程(如 sshd)进行交换,并开始执行大量交换操作,从而导致速度大幅下降。这样,当在 ddos 系统下可能会由于巨大的滞后而进入完全无法使用的状态时,我可能无法登录并终止网络服务器进程或拒绝所有传入流量(除了 ssh)。
这是正确的吗?我是否遗漏了什么(例如,即使我有足够的 RAM,交换分区在某些方面也非常有用)?我应该关掉它吗?
我的意思是使用 HTML5 套接字并且不需要安装的纯 javascript 客户端,只需在浏览器中打开单个 js 文件。是否有可能编写这样的客户端?
我正在使用rotatelogs 以格式创建我的每日apache 日志host.<day>.<month>.<year>.access.log
。现在我想在完成后 gzip 并将日志移动到不同的目录。怎么做?
更新:有一个小错误。logrotate
->rotatelogs
可能的重复:
如何为多个基于 Linux 的服务器提供适当的备份?
我想对整个系统进行夜间备份,并能够回滚到过去 7 天的任何一天。而且,它必须是增量备份。我应该使用什么工具?我读过的关于 rsync 的教程只讲述了如何存储最新的增量备份,我需要最后 7 个。
在 /proc/net/ip_conntrack 我有:
established 3076
time_wait 4346
total 7468
Run Code Online (Sandbox Code Playgroud)
在 netstat 我有:
established 1051
time_wait 73
total 1165
Run Code Online (Sandbox Code Playgroud)
这是为什么?其他联系在哪里?如何弄清楚他们在做什么?
更新:有关 ip_conntrack 的更多统计信息
assured 5230
unreplied 2133
total 7427
Run Code Online (Sandbox Code Playgroud) IPMI 是否总是包含 KVM?它总是能够安装远程 .ISO 并显示视口图像吗?
如何在“最近”模块中查看完整的 IP 地址列表?我想查看当前的命中计数来相应地调整我的值,这样就不会意外阻止有效用户
我有一些像这样的端口转发规则
iptables -t nat -A PREROUTING -p tcp --dport 46000 -j DNAT --to-destination 172.16.8.2:46000
iptables -A FORWARD -p tcp -d 172.16.8.2 --dport 46000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以在一行而不是两行中添加新的转发规则,这样我就不必两次输入相同的数据。我的意思是这样的规则:
是否可以?
我有一个大小约为 30Gb 的 mysql (MyISAM) 数据库。它有一个大桌子(还有一些较小的桌子,但没有区别)。它执行大约 2000 次选择(按主键单行)/秒,300 次更新/秒和 50 次插入/秒。我们有大约 10 个具有类似数据库的独立服务器。
我想在不离线的情况下备份该数据库(增量首选),该怎么做?
我有更新所有软件包的 Ubuntu Server 10.04。当我输入时,nginx -v
我得到nginx version: nginx/0.7.65
. 当我去 nginx.org 时,我看到最新的稳定版本是 1.0.10
是不同的版本编号还是ubuntu实际上正在运行非常旧的版本?如果是为什么?它是服务器的基本包之一(如 apache、mysql 等)
我有一个备份服务器,它从其他几个服务器收集备份。我想制作这样的目录结构
/backup/snapshots/<hostname>/<period>.0/<files>
Run Code Online (Sandbox Code Playgroud)
而不是默认的
/backup/snapshots/<period>.0/<hostname>/<files>
Run Code Online (Sandbox Code Playgroud)
这个怎么做?我试图指定参数
backup root@remote-host:/backup/snapshots/hourly.0 . snapshot_root=/backup/snapshots/myhost/
Run Code Online (Sandbox Code Playgroud)
但它不起作用
我想创建具有最少权限的用户。没有家,没有权利,没有壳。怎么做?当我调用 useradd 时,它会创建带有 home 的用户
可能的重复:
是否有任何理由不运行 Ubuntu 服务器?
为什么大多数托管服务提供商使用 RedHat Enterprise 和 CentOS?与例如 Ubuntu Server 相比,使用它们的优势是什么?对我来说,安装和配置 ubuntu 似乎更容易,而且更新频率更高。
ubuntu ×9
linux ×8
backup ×3
iptables ×2
networking ×2
security ×2
apache-2.2 ×1
centos ×1
firewall ×1
gzip ×1
html5 ×1
ipmi ×1
javascript ×1
log-rotation ×1
mysql ×1
nat ×1
netstat ×1
nginx ×1
performance ×1
permissions ×1
redhat ×1
replication ×1
routing ×1
rsnapshot ×1
socket ×1
ssh ×1
swap ×1
ubuntu-10.04 ×1
web-server ×1