服务器管理员

系统和网络管理员的问答

1
我是否应该在带有ECC DIMM的Dell PowerEdge R710 BIOS中使用BIOS“高级ECC”?
我有一个带双Intel Xeon E5503 CPU的Dell PowerEdge R710。它具有96GB(12x8GB)的ECC DIMM。在其BIOS中,内存配置为“高级ECC”。 我的问题是,如果我的DIMM已经是ECC,在BIOS中启用此“高级ECC”模式是否有意义,还是应该切换到“优化”状态? Dell对这些模式的描述如下: 高级ECC模式 此模式使用两个MCH并将它们“绑定”在一起以模拟128位数据总线DIMM。这主要用于实现基于x8 DRAM技术的DIMM的单设备数据校正(SDDC)。在每种内存模式下,基于x4的DIMM均支持SDDC。一个MCH完全未使用,并且此通道中安装的任何内存将在POST期间生成警告消息。 内存优化模式在这种模式下,MCH彼此独立运行;例如,一个可能空闲,一个可能正在执行写操作,另一个可能正在准备读操作。内存可以安装在一个,两个或三个通道中。为了完全实现内存优化模式的性能优势,应填充每个CPU的所有三个通道。这意味着某些“非典型”内存配置(例如3GB,6GB或12GB)将产生最佳性能。除非需要特定的RAS功能,否则这是推荐的模式。 Dell PowerEdge R710系统硬件用户手册(PDF)

3
如何在Debian上的Apache中设置默认umask?
我需要由apache2创建的文件002默认具有umask ,即rw组。 我尝试放入umask 002/ etc / apache2 / envvars,尽管此脚本确实在apache启动(apache2ctl graceful)的过程中执行,但umask无效。大概在启动过程中的某个位置(例如,当用户从降级root到时www-data),还有个更好的放置位置。 我读过有关Fedora的帖子,其中一篇建议将umask放入其中,/etc/init.d/apache2但在Debian(Squeeze)中都没有应用/工作。 你能帮我吗?
14 apache-2.2  umask 

10
Windows 2008 DHCP服务失败-“…无法查看用于授权的目录服务器。”
我在运行Windows 2008 R2的小型环境中,域控制器上的DHCP服务每两周出现一次故障。 最明显的错误是Event ID 1059,事件查看器消息是: "The DHCP service failed to see a directory server for authorization." 该安装程序具有两个域控制器以及通常的服务和角色(文件,打印,Exchange)。由于多种原因,重新启动服务失败。我在不同时间收到以下消息: “没有足够的存储空间来完成此操作”。 “无法确定服务器192.168.xx的DHCP服务器版本” “ DHCP服务已检测到它正在DC上运行,并且没有配置供DHCP服务启动的动态DNS注册使用的凭据。” 重新启动域控制器可以解决此问题约2周。系统已虚拟化,没有网络连接问题。 关于这里发生的事情有什么想法吗? 编辑-解决方案似乎是修复行为异常的域控制器。

2
rsync ionice目的地
为避免rsync使系统和网络饿死,我们ionice在启动rsync并设置--bwlimit参数时使用。例如: ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo root@dest.com:/ 这确实有助于确保源服务器保持响应。但是,由于磁盘io为100%(如atop实用程序所见),目标服务器变得非常慢。 是否可以以某种方式ionice在目标服务器上使用?也许通过rsync -e选项?如果可能,我宁愿不要运行rsync守护程序。

2
Windows计划的任务-“启动时”任务的错误2147943711
无论有人是否登录,我都有一个要自动运行的onstartup任务。 我使用以下代码将其设置为Run whether user is logged in or not,Do not store password1和Run with highest privileges,我认为它们可以工作: schtasks /create /tn "My OnStartup Task" /TR "powershell blah.ps1" /sc ONSTART /f /NP /RL HIGHEST 启用任务计划程序历史记录后,出现以下错误: Event ID: 104: Task Scheduler failed to log on "<Task Author>" . Failure occurred in "LsaLogonUser" . User Action: …

1
限制用户可以使用主管重启的进程?
我曾经使用主管来管理运行Django站点的Gunicorn进程,尽管这个问题可能与主管所管理的任何事情有关。以前,我是唯一管理和使用我们服务器的人,主管仅以root用户身份运行,我将supervisorctl restart myapp在需要时使用sudo运行。 现在,我们的服务器必须支持在不同站点上工作的多个用户,并且每个项目都需要能够重新启动自己的gunicorn进程,而又不能重新启动其他用户的进程。 我关注了这篇博客文章: http://drumcoder.co.uk/blog/2010/nov/24/running-supervisorctl-non-root/ 并允许非root用户使用超级用户,但现在任何人都可以重新启动其他任何人的进程。从外观上看,主管无法进行每个用户的访问控制。 任何人都对如何允许用户仅在没有root用户的情况下重新启动自己的进程有任何想法? 编辑:我们考虑过的一些事情包括编写一个由root拥有的脚本,其suid位集不包含任何内容supervisorctl restart myapp,并将其放置在拥有者的用户目录中myapp。互联网似乎在说,如果处理不当,这种脚本是不安全的。我们还考虑编写一个自定义守护程序,该守护程序侦听来自特定用户的命令,并在用户具有权限的情况下重新启动管理程序。如果可以使用更简单的解决方案,则此想法似乎过于复杂。


4
输入root密码进行维护
进入后 shutdown now 在终端中,我一切正常运行,然后: All processes ended withing 2 seconds...done INIT: Going single user INIT: Sending processes the TERM signal INIT: Sending processes the KILL signal Give root password for maintenance(or.... 我按Ctrl+ D,它显示出登录屏幕Debian。通过GUI关机正常工作。 更新1 似乎有些过程挂起。 此外,我已经通过几次重试设法关闭了服务器的电源。最近我只安装了ntp和ntpdate,仅此而已。 我想可能与iptables冲突。
14 linux  debian 

7
虚拟磁盘增长后如何在线扩展Linux PV分区
当VM运行时,VMware允许在线扩展虚拟磁盘的大小。Linux系统的下一个预期步骤是: 扩展分区:删除并创建一个更大的分区 fdisk 通过以下方式扩展PV尺寸 pvresize 使用自由范围进行lvresize操作 然后resize2fs用于文件系统 但我坚持的第一步:fdisk和sfdisk仍显示旧大小的磁盘。 我的磁盘是通过虚拟LSI Logic控制器连接的SCSI虚拟磁盘。 如何在不重新启动的情况下刷新Linux内核中可用的虚拟磁盘大小和分区表信息? 据我所知,借助VMWare工具,所有这些步骤对于运行中的Windows都是可能的,无需重新启动,甚至无需任何用户操作。在Linux上,我希望也可以在线完成所有步骤,并且我已经知道步骤2、3和4可以在线工作。但是第一个-更改分区表中声明的分区大小(仍然)似乎需要重新启动。 更新:我的系统是Debian Lenny,内核为2.6.26,我扩展的磁盘是主磁盘,其主磁盘具有较大的PV,其中包含“ /”的“ root” LV。

3
Ubuntu Linux:进程交换内存和内存使用情况
我的Ubuntu占用的内存超过任务管理器显示的内存: sudo ps -e --format rss | awk 'BEGIN{c=0} {c+=$1} END{print c/1024}' 2750.29 free -m total used free shared buffers cached Mem: 3860 2765 1094 0 3 300 -/+ buffers/cache: 2461 1398 Swap: 2729 2374 354 真奇怪。有人可以解释这种差异吗? 但是更重要的是:我想知道一个进程真正使用了多少内存。我不想知道虚拟内存的大小,而是想知道驻留内存以及进程的交换。 我也尝试输出'ps'的格式参数“ sz”,但是总和太高(16000 MB)(参数'size'给出了36700 MB)。还有其他选择吗? 我真的很想用它来确定哪些程序/进程正在消耗大量内存(并交换),杀死它们,因为内存很有价值:-)这真的没有任何意义,所以我在这里问。 / proc / meminfo的输出: MemTotal: 3952812 kB …
14 linux  ubuntu  memory  swap 

4
设置透明的SSL代理
我有一个装有2个网卡的linux盒,用于检查通过端口80的流量。一张卡用于连接互联网,另一张卡连接至网络交换机。关键是要能够检查连接到该交换机的设备上用于调试目的的所有HTTP和HTTPS通信。 我为iptables编写了以下规则: nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:1337 -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1337 -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE 在192.168.2.1:1337上,我使用Charles(http://www.charlesproxy.com/)进行了透明的http代理记录。 端口80一切都很好,但是当我为指向端口1337的端口443(SSL)添加类似规则时,通过Charles收到有关无效消息的错误消息。 我之前曾在Charles的同一台计算机上使用过SSL代理(http://www.charlesproxy.com/documentation/proxying/ssl-proxying/),但是由于某种原因未能透明地进行SSL代理。我用Google搜索的一些资源说这是不可能的-如果有人可以解释原因,我愿意接受它作为答案。 需要注意的是,我拥有上述设置的完全访问权限,包括连接到子网的所有客户端-因此,我可以接受Charles的自签名证书。该解决方案不必特定于Charles,因为从理论上讲,任何透明代理都可以。 谢谢! 编辑:稍微玩了一下之后,我就能让它在特定主机上正常工作。当我将iptables修改为以下内容时(并以查尔斯打开1338作为反向代理): nat -A PREROUTING -i eth1 …


6
在Mysql提交期间,IO等待导致了如此多的速度下降(EXT4 JDB2在IO达到99%)
我正在使用python编写索引器,该索引器为文档建立索引并将其插入数据库中,在此之前是单个进程,但现在我运行了4个并行进程进行多处理。每次提取文本后,它将插入数据库并进行提交。 现在,它遇到了IO问题,主要的IO问题不是我的进程,而是EXT4的jdb2监视系统。它达到了99.99%,并导致CPU在每个MySQL Commit中等待IO。 我看到许多人在互联网上遇到了这个问题,他们的解决方案是使用barrier = 0进行安装。那会完全禁用日记功能吗?我的服务器具有UPS,并且很愿意这样做吗?

2
是否可以在openssl的s_client命令上设置超时?
我有一个脚本,该脚本使用openssl的s_client命令为大量主机提取证书。这些主机中的某些主机将不可避免地由于防火墙而无法访问。是否可以将s_client超时设置为比默认值短得多的时间?我在手册页/帮助文件中看不到任何内容。 该命令或某种包装器命令将在X秒后自动杀死openssl -s_client。 如果可能的话,我宁愿不对主机/端口进行可用性的预测试。

2
git,nagios和钩子,损坏的git repo
背景 我们正在使用nagios监视我们的基础架构。目前,我们没有nagios配置受版本控制,我们中有两个人管理nagios配置。因此,我正在努力使我们的nagios配置进入中央git存储库,使用一些钩子进行语法检查,然后如果配置看起来不错,请将其“激活”。我正在用这个家伙的帖子为起点。 我要实现的一般工作流程是: 编辑nagios配置的本地git回购。添加编辑的文件,在本地提交。 git push origin master 到远程仓库。 推送被预接收挂钩拦截,该挂钩接收文件,将它们移动到服务器上的临时目录,然后通过nagios语法检查器运行它们。 如果语法检查器通过,请接受推送,然后使用后提交钩子git pull将新代码插入实时nagios配置目录,然后重新启动nagios。 如果语法检查器失败,请拒绝该推送,向用户显示nagios语法错误。 但是,当我由于nagios配置中的语法错误而拒绝git push时,我遇到了一种奇怪的行为。我希望发生的事情是,如果我拒绝该挂钩,则尝试进行的推送应该使存储库保持原样,并且保持不变。不过,事实似乎并非如此。以下是我所看到的详细信息: 问题 我在本地编辑nagios配置,故意包括语法错误,添加然后在本地提交: host:nagios erik$ vi nagios.cfg host:nagios erik$ git add nagios.cfg host:nagios erik$ git commit -m "syntax error" [master da71aed] syntax error 1 files changed, 1 insertions(+), 0 deletions(-) 现在,我将这些更改推送到主存储库中。由于语法错误,这将被拒绝: host:nagios erik$ git push origin …
14 git 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.