服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

在带有iPad的DreamPlug Ubuntu上使用Avahi

在DreamPlug(这是一个运行Ubuntu Jaunty的插件计算机)上使用Avahi时,我遇到以下非常奇怪的问题。 花了几天时间后,我想我已经设法缩小了这个问题。 DreamPlug充当WiFi接入点,并具有主机名plug和IP地址192.168.1.1 (在/etc/hosts和/etc/hostname )并运行lighttpd。 现在,我的Mac可以直接在Chrome中访问http://plug.local ,但是如果我尝试在iPad上加载http://plug.local ,则不起作用。 也就是说, 直到我加载桌面上的页面才能工作。 出于某种原因,iPad永远无法parsing主机名,直到Mac上第一次parsing主机名…这很奇怪,因为除了连接到Mac之外,iPad和Mac之间没有连接相同的接入点(DreamPlug)。 所以只是为了澄清:除非我访问Mac上的http://plug.local否则访问http://plug.local时,iPad上的Safari浏览器将挂起(直到它报告浏览失败),运行ping plug.local ,执行ssh [email protected]或基本上做任何其他解决主机名,在这一点上,iPad立即parsing主机名,它开始正常工作。 如果我的理解是正确的,当iPad连接他们广播一个解决scheme请求plug.local 。 无论出于何种原因,这个请求被DreamPlug忽略(或者它永远不会被接收)。 但是,Mac设法播放了它的请求。 它广播一个parsing请求和DreamPlug brodcast返回结果plug.local – > 192.168.1.1 。 iPad然后收到这个结果(这是真正的目的地为Mac),然后能够成功解决。 我很乐意根据要求提供我的avahi-daemon.conf或其他configuration文件。 更新:我现在设法使用Wireshark,发现iPad确实向networking传播了一个请求。 我已经捕获了一个DID导致Avahi响应的数据包,以及一个没有响应的数据包。 它们看起来完全一样,唯一的区别是没有指定另一个types为OPT RR …我不知道OPTlogging是什么。 Avahi可能会因为某些原因不喜欢附加OPT RR的DNS查询吗? 这里有两个来自Wireshark的截图。 第一个显示从桌面计算机发送的“好”mDNS请求(在这种情况下,该设备称为runway.local )。 这个查询工作正常,服务器(在192.168.1.1 )立即响应: 以下是从runway.local返回的响应runway.local : 同时,这里是第二个DNS查询,它已经从iPad发送给相同的主机名runway.local 。 在这种情况下,请求似乎只是被忽略(无论如何,这个DNS查询都没有收到响应): 试图追踪iPad请求中导致问题的原因,看起来这两个数据包几乎完全相同,从桌面(运行OS X)和iPad发送的mDNS查询的唯一区别在于iPad附加一个OPT资源logging到DNS请求的底部。 问题是:资源logging的重要性是什么 – 是否这个 – 或者是别的什么 – 负责这个DNS请求被Avahi忽略。 更新这可能是我一直在寻找的突破: […]

statsd和石墨的高可用性,Web访问和可扩展的部署

我想设置statsd / graphite,这样我就可以logging在HTML设备上运行的JS应用程序(即不在包含的LAN环境中,并且可能有大量不直接控制的传入数据)。 我的约束: 入口点必须说HTTP:这是通过一个简单的HTTP-to-UDP-statsd代理(例如github上的httpstatsd) 必须抵制单一服务器的失败(与墨菲定律对抗:) 必须横向扩展:webscale,宝贝! 🙂 架构应尽可能保持简单(和便宜) 我的服务器是虚拟机 数据文件将存储在Filer设备上(使用NFS) 我有tcp / udp硬件负载平衡器处置 总之,数据path:[client] – (http) – > [http2statsd] – (udp) – > [statsd] – (tcp) – > [graphite] – (nfs) – > [filer] 我的发现迄今为止: 缩放http2statsd部分很简单(无状态的守护进程) 缩放statsd部分似乎并不简单(我想我最终会得到非整数值的石墨集合数据,如sum,avg,min,max …)。 除非HTTP守护进程为了分割密钥而执行一致性散列。 也许是一个想法…(但那是医pipe局的问题) 缩放石墨部分可以通过分解(使用碳中继)完成(但是这也不能解决HA问题)。 显然几个耳语实例不应该写入相同的NFS文件。 缩放文件pipe理器部分不是问题的一部分(但IO越less越好:) 缩放webapp似乎很明显(虽然我没有testing),因为他们只读取共享的NFS数据 所以我想知道是否有人有经验和最佳做法,分享一个坚实statsd /石墨部署?

Postgresangular色最佳实践实施

伙计们, 我可以使用你的帮助,使我的Postgres用户访问控制devise更好,更符合最佳实践。 我正在帮助推出一个小型的Postgres服务器,但我不是一个数据库pipe理员,所以我知道这样做很危险。 有一台服务器安装了Postgres v9.2。 这个安装托pipe多个数据库,每个数据库完全服务于不同的“客户”。 换句话说,customer1不会,不应该使用database2,等等。 在正常的操作过程中,数据库被一个匹配的CakePHP实例所访问,它们全都与Postgres共同位于同一台服务器上。 尽pipe可能会对此部署进行优化,但我最感兴趣的是Psqlangular色。 根据我所读到的,似乎有三种angular色是合理的: 超级用户postgres与非默认密码 不具有超级用户权限的pipe理员angular色,用于日常维护,数据库创build,备份,还原。 应该能够对所有的客户数据库做任何事情。 用户angular色只能在各自的数据库中进行CRUD。 如果清理实施,可以容忍他们自己DB的更多权利。 实现这个devise是我不那么自信的地方。 数据库和表的所有权以及谁应该从谁那里inheritance谁是有点泥泞。 以下是我的数据库和我的用户。 有足够的信息来评估实施吗? Role name | Attributes | Member of ———–+————————————————+——————- admin | Create role, Create DB | {user1, user2} postgres | Superuser, Create role, Create DB | {} user1 | | {} user2 | | {} postgres=# \l […]

Windows 7search不显示映射的Server 2008 R2共享的结果

我有一个Windows Server 2008 R2networking共享设置为Win 7 x64中的地图驱动器。 我想通过Windows 7search它,但我总是得到“没有项目符合您的search”。 就好像它甚至没有试图search。 Windowssearch服务的文件服务器angular色已安装。 持有networking共享的驱动器将添加到服务器上的索引选项中,并指示索引已完成。 据我所知,search查询应发送到服务器(内容索引),执行,并返回结果。 失败的解决scheme: 资料来源: http : //social.technet.microsoft.com/Forums/en-US/w7itpronetworking/thread/afb904c1-1c61-4aae-b6b1-5cf525b9f8de/ 创build与UNC的符号链接。 我觉得这是一个极端的解决办法,应该是一个简单的问题。 为UNC启用“总是可以脱机”。 在企业环境中,在本地复制所有服务器内容是不可接受的,对于许多TB服务器存储来说也是不可行的。 安装“Windows桌面search:Microsoftnetworking上文件的加载项” http://www.microsoft.com/downloads/details.aspx?DisplayLang=en&FamilyID=f7e981d9-5a3b-4872-a07e-220761e27283它允许UNCpathinput客户端的索引选项,然后在本地创build索引。 但是,该附件不适用于Windows 7,不支持x64。 更新: 该设置包括两个客户端(全部更新的Win7 x64),一个文件服务器,没有域名。 为了简单起见(在这种情况下安全不是问题),使用匿名访问。 我真的怀疑这是一个权限问题,因为我可以在映射驱动器上访问,修改和创build内容。 我只是不能search它。 在服务器上search始终有效。 有问题的份额有很多内容:2.17TB与274,633文件,但是,我想要search的文件夹只有11,503个文件(54.3GB) 在大多数情况下,search两个客户之一是有效的。 这似乎有点不可靠。 有些日子是有效的,有些则没有。 search第二个客户端从来没有工作。 索引已经在服务器以及两个客户端上重build。 更新2: 从客户端,如果我突出显示共享中的所有文件,请转至属性,让Win 7对这些文件进行计数,然后在计数完成后继续执行search。 我不确定这是为什么(这与重build索引有关,这次呢?)。 我有一种感觉,随着文件服务器内容的变化,它不会继续工作。 有什么想法吗?

我如何确定在我的基于Apache / PHP的Web应用程序中明显的内存泄漏的原因?

大约每周一次,但有时甚至几天后运行良好,我的EC2实例变得没有反应。 Munin的内存图表讲述了一个非常简单的故事:分配给“应用程序”的内存开始增长,直到swap完全被使用并且实例被有效地closures为止。 另一个自定义图表显示,不断增长的过程是apache2。 我使用mod_php和几个PHP脚本运行标准的prefork Apache安装程序。 正如你在下面的图表中看到的,触发apache2进程开始消耗越来越多的内存的事情发生了。 我发现了第一个绿色尖峰,并在事情失控之前重新启动了Apache。 第二个秒杀得到了更远,实例必须彻底重新启动。 Munin记忆图 我想知道的是如何最好的debugging。 使用FastCGI设置PHP并让它在自己的进程中运行的缺点是什么是一个很好的方法来找出它是Apache还是PHP和我的代码的组合导致过度的内存使用? 你们会采取什么措施来追踪这个问题? 更新:我能跟踪泄漏后,涉及strace,如马特build议如下。 在find一个在内存中不断增长的apache2进程之后,我又添加了一些error_log()调用到我的PHP脚本中,这个脚本打印出了执行中各个点(使用ps的输出)使用的RSS总量。 然而事实certificate这是误导性的 – 虽然看起来RSS只是在我的脚本执行完毕后才跳转,后来的debugging显示事实并非如此。 小心! 幸运的是,所有这些error_log()调用最终都是有用的。 当我启动strace( strace -p <pid> -tt -o trace.log -s 256 )时,我看到对于每个请求,进程分配了大约400k的内存(寻找“brk”系统调用并减去来自最后一次呼叫的第一个呼叫的参数 – 一些通常会一个接一个地进入)。 然后,我search了包含我的error_log()消息的最近的“写入”系统调用,该消息告诉我脚本内存分配的哪一点。 有一些更具战略意义的调用error_log()调用来更准确地查明位置,我终于find了罪魁祸首。 当我们从我们的PHP脚本调用curl_exec()时,内存泄漏。 一些与处理SSL连接有关的curl代码是做错了事 – 当我切换到HTTP时泄漏消失了。 Curl的更新日志引用了一些在7.19.5(我们在7.18.2)中修复的SSL内存泄漏,所以我会在下一步尝试。 与此同时,我正在运行一个非常低的MaxRequestsPerChild,使Apache保持在合理的范围内。 感谢大家!