小编nn4*_*n4l的帖子

postgres 统计信息收集器进程生成的 I/O 过多

我将 XenServer 与多个具有本地 postgres 数据库的虚拟机一起使用。即使所有应用程序都未使用且数据库处于空闲状态,每个虚拟机也会导致持续的存储网络流量,从而降低 iSCSI 存储设备的性能。

运行后,iotop我注意到 postgres stats 收集器进程进程以大约 2 MByte/s 的速率不断写入磁盘。

然后我通过编辑禁用了统计信息的收集/etc/postgresql/8.4/main/postgresql.conf

#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

track_activities = off
track_counts = off
...
Run Code Online (Sandbox Code Playgroud)

正如http://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm 中所建议的。

这消除了连续写入,但是关闭统计跟踪有什么缺点吗?

或者我应该将 pg_stat_tmp 目录放在 ramdisk 上以避免磁盘/网络流量?

系统是最新的 Debian 6.0.7(squeeze),带有 postgres 8.4 和大约 20 个数据库,大约有 50 个表,总转储文件大小小于 100 MB。

postgresql performance performance-tuning database-performance

11
推荐指数
1
解决办法
5840
查看次数

为什么我的 RAID1 读访问比写访问慢?

我做了一些简单的性能测试,似乎从我的 RAID1 读取比写入慢:

root@dss0:~# for i in 1 2 3; do dd if=/dev/zero of=/dev/sda bs=1048576 count=131072; done
137438953472 bytes (137 GB) copied, 192.349 s, 715 MB/s
137438953472 bytes (137 GB) copied, 192.851 s, 713 MB/s
137438953472 bytes (137 GB) copied, 193.026 s, 712 MB/s
root@dss0:~# for i in 1 2 3; do dd if=/dev/sda of=/dev/null bs=1048576 count=131072; done
137438953472 bytes (137 GB) copied, 257.201 s, 534 MB/s
137438953472 bytes (137 GB) copied, 255.522 s, 538 MB/s
137438953472 bytes (137 GB) …
Run Code Online (Sandbox Code Playgroud)

raid performance storage megaraid

10
推荐指数
2
解决办法
2882
查看次数

仅当输出文件已更改时才运行 puppet exec 命令

我正在使用 exec 命令运行一个 shell 脚本,该脚本修改其他包的某些配置文件。每当输入参数如 ip 地址、端口或 url 更改时,或者当 shell 脚本本身已更改时,都会触发 exec 命令。

我必须使用 shell 脚本,因为软件包的配置文件在不同版本之间略有不同。我认为更容易更新每个 sed 脚本的配置文件,而不是为每个特定版本提供不同的 puppet 模板。

但是此配置不会检测何时在 puppet 之外修改了任何配置文件。Puppet 不知道 shell 脚本修改过的文件。

我正在寻找的是一种使 exec 命令依赖于任意其他文件的校验和的方法:

exec { "my_command.sh":
  only_if_file_has_changed => [ 
    "/etc/mysoftware/config.xml", 
    "/etc/othersoftware/defaults", 
  ]
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?请指教。

puppet

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

来自中国的大量 dns 请求,我应该担心吗?

我打开了 dns 查询日志,当运行“tail -f /var/log/syslog”时,我看到我从一个 IP 地址收到数百个相同的请求:

Apr  7 12:36:13 server17 named[26294]: client 121.12.173.191#10856: query: mydomain.de IN ANY +
Apr  7 12:36:13 server17 named[26294]: client 121.12.173.191#44334: query: mydomain.de IN ANY +
Apr  7 12:36:13 server17 named[26294]: client 121.12.173.191#15268: query: mydomain.de IN ANY +
Apr  7 12:36:13 server17 named[26294]: client 121.12.173.191#59597: query: mydomain.de IN ANY +
Run Code Online (Sandbox Code Playgroud)

频率约为每秒 5 - 10 个请求,持续约一分钟。之后,从不同的 IP 地址重复相同的效果。我现在已经在短短几个小时内记录了来自大约 25 个 IP 地址的大约 10000 个请求,根据“whois [ipaddr]”,所有请求都来自中国。

这里发生了什么?我的名称服务器是否受到攻击?我可以做些什么吗?

domain-name-system bind ddos

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

dns 请求奇怪的域名,如 mAiL.myDOMAIn.De

我已经打开了登录命名。大约 2% 的请求包含大写和小写域的奇怪组合,例如

Jan  7 10:38:46 s1500 named[27917]: client ip address#34084: query: mAIl.MYdoMain.de IN A - (my ip address)
Jan  7 10:39:40 s1500 named[27917]: client ip address#53023: query: MAil.mYdoMAIn.De IN A - (my ip address)
Jan  7 12:10:07 s1500 named[27917]: client ip address#53576: query: SErver25.mydomAiN.De IN A - (my ip address)
Run Code Online (Sandbox Code Playgroud)

即使来自同一客户端的请求,大写/小写混合也会发生变化,某些请求仅相隔几秒钟。大多数请求似乎来自本地(德国)DSL 提供商。

有人可以解释这里发生了什么吗?我不知道为什么有人会随机化域名大小写,或者攻击者想利用哪个安全问题。

domain-name-system bind

6
推荐指数
1
解决办法
711
查看次数

当前的 2 TByte 消费级磁盘驱动器的可靠性如何?

大多数便宜的 SATA 磁盘驱动器的额定值为“每 10^14 位读取 1 个不可恢复的读取错误”。

这是什么意思?

10^14 位只是 12.5 TByte。如果我有一个完整的 2 TByte 磁盘并将其复制到第二个磁盘,实际上是否有大约 1/6 的可能性是其中一个文件已损坏?

如果发生这种情况,受影响的块是否会被标记并重新分配?我认为是因为如果读取在重试时成功,则它不是不可恢复的读取错误。

然而,我已经使用了很多这些磁盘驱动器几年了,我没有注意到坏块数有任何增加,而且 RAID 控制器日志也没有显示任何读取问题。

编辑:RAID 控制器每周对每个磁盘执行一次巡检读取,因此每年大约为 100 TByte。这仍然少于 10^15 位。

另一方面,2 年内 50 个磁盘中有 4 个磁盘故障,这增加了错误率。

我没有足够的统计数据来做出声明,但在我的情况下,实际错误率似乎在 10^14 和 10^15 之间,这与规范一致。

raid hard-drive

6
推荐指数
1
解决办法
934
查看次数

Debian 无人值守升级不会升级所有软件包

我已经安装了 Debian 无人值守升级包。它升级大部分软件包,但不是所有软件包。如果我apt-get upgrade在运行后执行,则会安装更多软件包。

这是我的/etc/apt/sources.list

deb http://ftp.de.debian.org/debian/ squeeze main non-free
deb-src http://ftp.de.debian.org/debian/ squeeze main non-free

deb http://security.debian.org/ squeeze/updates main non-free
deb-src http://security.debian.org/ squeeze/updates main non-free

# squeeze-updates, previously known as 'volatile'
deb http://ftp.de.debian.org/debian/ squeeze-updates main non-free
deb-src http://ftp.de.debian.org/debian/ squeeze-updates main non-free

# squeeze backports
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free

# LTS
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free
Run Code Online (Sandbox Code Playgroud)

这是我的/etc/apt/apt.conf.d/50unattended-upgrades文件。我的猜测是问题可能出在应该与我的sources.list条目匹配的前几行中:

// Automatically upgrade packages from these (origin, archive) pairs …
Run Code Online (Sandbox Code Playgroud)

debian update upgrade automatic-updates

5
推荐指数
1
解决办法
3969
查看次数

通过控制台将 XenServer 快照导出为文件

我已经使用 XenCenter 创建了 Citrix XenServer 虚拟机的快照,现在我想将此快照保存为 *.xva 文件,就像我在 XenCenter 中右键单击快照图标并选择“导出到文件”一样。 ..”。

但是,由于 VM 的大小为 100 GByte,我宁愿从 XenServer 控制台执行此操作并将其直接保存到快速 NFS 安装卷,而不是通过慢速网络连接下载 VM。

请告知如何通过控制台执行此操作。我花了一些时间谷歌搜索,但无法找到解决这个特定问题的方法。

xen snapshot xenserver

3
推荐指数
1
解决办法
2万
查看次数

出于安全原因阻止端口 80 有什么缺点吗?

为了提高安全性,我们希望通过 https 访问我们托管的所有客户站点,并在我们的条款和条件中保证这一点。

问题是当前 Apache 网络服务器配置为使用“重定向永久”Apache 指令将所有 http 请求重定向到 https 请求。从技术上讲,我们仍在使用不安全的 http 协议,尽管它仅用于重定向,并且无法通过 http 访问任何客户数据。

两个问题:

  1. 完全阻塞80端口有什么坏处吗?我能想到的唯一缺点是客户被迫在其 url 前输入 https://,而不是依赖自动重定向。

  2. 如果客户发送 http POST 请求,Apache httpd 会在实际 POST 数据传输到我们的服务器之前以重定向响应,还是仅在收到(未加密的)客户数据后才发送重定向?

请指教。


在考虑您的意见后,我们将对我们的网络设置进行以下更改:

  1. 各个客户 VM 将被修改,以便它们不再侦听端口 80。重定向配置也将被删除。
  2. 防火墙将进行配置,以便将任何端口 80 流量路由到一个特殊的服务器,该服务器的唯一目的是将正确的重定向响应返回给发送者。
  3. 为了获得最大的安全性,这个特殊的服务器将位于与所有其他系统不同的 VLAN 中,我们甚至可以使用专用硬件(例如 Raspberry Pi)而不是标准 VM。
  4. 将为所有客户实例添加 HSTS 支持。

通过使用此设置,我们可以证明没有未加密的流量到达或离开客户网络,同时仍然提供用户友好的自动重定向到 https。

security apache-2.2

1
推荐指数
2
解决办法
730
查看次数