我在各种Supermicro和其他白盒服务器上运行Linux(Red Hat,CentOS,SL,版本5和6)。 有些有IPMI,有些则不。 其中一些系统连接到键盘/显示器(KVM)控制台交换机。 其他系统连接到远程串行控制台。 而较新的服务器被挂接到IPMI中,并且可以通过基于局域网的KVM控制台redirect或LAN上串行(SOL)获得。 使用所有这些方法,我们希望在所有串行控制台和KVM屏幕上看到一致的输出。 例如,我们希望能够与系统进行交互,从启动到closures,我们希望看到整个启动顺序。 这包括看到由以下各项打印并与之交互的任何消息: BIOS(由许多现代BIOS中的BIOS控制台redirect处理,并独立于操作系统) 引导程序(Grub 0.97,在这种情况下) 查看由内核打印的消息 查看由fsck打印的消息,例如在大型文件系统的冗长fsck中。 在一个带有串行控制台的系统上,有时候fsck会在这里无所事事,等待系统pipe理员input一个密码。 但是系统pipe理员可能不会看到这个密码提示,除非我们碰巧记得进入串行控制台。 在启动会话期间查看由程序打印的消息 (例如Starting sshd: [ FAILED ] typo in sshd_config on line 171 ) login:提示,并允许我login到系统。 我已经尝试了一些方法,但似乎无论我放在grub.conf ,有些消息是打印到显示器还是串行控制台,但不是两者。 是否有可能告诉引导程序,Linux内核,操作系统等打印所有消息到所连接的显示器以及串口控制台?
我是小型初创公司的服务器pipe理员(这意味着我绝不是一个经验丰富的专家),最近我帮助将站点从一台Windows机器迁移到Rackspace上的一组机器上云。 目前该网站的基准testing约为600个请求/秒,但考虑到我们分配给它的资源量,我觉得它可能要高得多。 现在我们在8台Web服务器前使用Rackspace云负载均衡器(Apache Zeus)。 每个Web服务器都在一个512MB云实例上运行Linux,内容由具有Apache 2后端的Varnish服务。 Web应用程序本身就是PHP。 Apache运行在mpm-worker中,php运行在fcgi中。 PHP APC也被启用。 至于数据库后端,我有两个4GB的服务器实例在Master-Master复制设置中为MySQL服务,其中一半的Web服务器指向每个服务器。 该应用程序是相当密集的数据库,因此有这么多的资源专用于数据库。 性能通常很好,但是我们有一些负载尖峰,现有的基础设施无法处理,所以我dynamic地增加了节点的大小。 这个结果很好,但是我觉得在特定的负载条件下,我不得不在基础设施上投入更多的资源,比我预期的要快得多。 在我的研究中,似乎我们正在使用非常罕见的设置,因为有很多单独的清漆实例,我可能需要探索caching层的选项。 这里画出了当前体系结构的概述(谷歌文档链接) rackspace云的定价模式非常线性,这意味着一个1024mb的服务器实例是一个512mb实例成本的两倍。 因此,我期待在相同数量的资源(成本)下工作时最大化我的performance。 我最初的想法是删除rackspace负载平衡器,而不是在apache后端前面使用一个单独的varnish实例,也许使得apache后端是4x 1gb的实例,而不是8x 512mb的实例。 负载平衡器的成本非常低廉,所以为了用另一台专用服务器来替代它,性能增益将会很大。 我也玩弄了HAProxy和Nginx的想法,但是我不想盲目地在一个生产网站上做实验。 我的目标是能够在大致相同的硬件configuration下接近2000 req / s。 编辑:我有mod_pagespeed工作了一阵子,使我了约100 req / s,但我似乎有很多关于如何与清漆交互的问题。 编辑: Varnish VCL ,Disk是Rackspace Cloud的默认(非SAN,猜测SATA),数据库目前大约是1.5GB。 在正常情况下不能交换到磁盘。 每个Apache的进程大约是20MB。 php-cgi进程倾向于咀嚼更多的资源。
我们有一个RHEL 5.6服务器,这里有4条到单个LUN的活动path。 我们怀疑它不能将足够的IO塞进到另一端的XIVpipe道中: mpath0 (XXXXXXXXXXXXXXX) dm-9 IBM,2810XIV [size=1.6T][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=4][active] \_ 2:0:1:2 sdaa 65:160 [active][ready] \_ 1:0:0:2 sdc 8:32 [active][ready] \_ 1:0:1:2 sdk 8:160 [active][ready] \_ 2:0:0:2 sds 65:32 [active][ready] Device: rrqm/s wrqm/sr/sw/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sdc 0.00 108.18 49.30 273.65 795.21 1527.35 14.38 0.49 1.51 1.16 37.50 […]
我们在周末交换了ASA,我们取代了以前基于openvpn的VPN基础设施,现在在我们的ASA 5520和其他拥有linux(CentOS)路由器的站点之间使用IPSec。 VPN连接正常,但一段时间后连接失败。 在ASA上,它没有显示对等的ipsec SA,但它确实显示isakmp sa仍处于活动状态。 如果我清除连接两端的SA,则VPN将重新恢复。 我假设问题是一个更严重的问题,但似乎所有的提案具有相同的密钥生命周期(如下所示)。 任何想法可能是什么问题? 注 – 我从这些捕获混淆了IP地址; 我怀疑我的build议有问题,所以IP不应该是相关的。 假设所有的IP都是占位符。 ASA显示运行encryption crypto ipsec ikev1 transform-set ESP-3DES-SHA esp-3des esp-sha-hmac crypto ipsec security-association lifetime seconds 86400 crypto dynamic-map OUTSIDE_DYN_MAP 10 set ikev1 transform-set ESP-3DES-SHA crypto dynamic-map OUTSIDE_DYN_MAP 10 set security-association lifetime seconds 288000 crypto dynamic-map OUTSIDE_DYN_MAP 10 set reverse-route crypto map vpnmap 10 […]
我有一个应用程序在/opt/reports中生成具有root:root的文件的报告文件,在0600年。为了允许外部系统自动处理这些报告,我创build了一个新的服务帐户用户,使用组“report”组/opt/reports报告并设置SUIG位,然后在/opt/reports目录中设置默认ACL,使其包含报告组和400,屏蔽为400。 我注意到,当我手动创build一个文件的权限都设置为预期,但是当应用程序创build一个文件的默认值不会被inheritance。 [root@reports1 ~]# getfacl /opt/reports getfacl: Removing leading '/' from absolute path names # file: opt/reports # owner: root # group: report user::rwx group::rx other::rx [root@reports1 ~]# setfacl -R -d -n -mg:report:r,m::r /opt/reports/ [root@reports1 ~]# getfacl /opt/reports getfacl: Removing leading '/' from absolute path names # file: opt/reports # owner: root # group: report […]
我们正在构build一个可能会产生非常大的XFS卷的产品,并且我正试图发现在给定架构的情况下我们可能遇到的扩展瓶颈。 当我们操作文件时,它们被放置在XFS卷上的目录中。 由于我们处理的文件数量众多,文件数量肯定在数千万之内,而且在发布之后太久之前可能会达到数亿。 我们知道这是因为我们目前的产品是这样的,所以期待我们的下一个产品是类似的。 因此,正确的早期工程是有序的。 本周这些文件基于以下粗略布局: $ProjectID/$SubProjectID/[md5sum chunked into groups of 4]/file 其中给出了这样的目录: 0123456/001/0e15/a644/8972/19ac/b4b5/97f6/51d6/9a4d/file 分块md5sum的原因是为了避免“一大堆文件/目录在一个目录中”的问题。 由于md5sum分块,这意味着1个文件导致8个目录被创build。 这对inode有着非常明显的影响,但我不清楚一旦我们达到规模,对XFS的影响会是什么。 有什么影响? 顺便说一下,这是内核2.6.32,目前CentOS 6.2(如果需要可以更改)。 在testing中,我已经创build了默认的xfs卷,并没有使用任何安装选项。 这是为了早日排除问题。 因为我们不需要它,所以noatime是一件简单的事情。 总体来说,XFS调整是我需要解决的另一个问题,但现在我担心我们现在devise的元数据乘数效应。 我已经知道一个更好的解决scheme将是什么,我只是不知道是否有案件推动改变。 由于md5sums在第一个数字中是非常独特的,单个子项目很less超过500万个文件,所以在我看来,我们只需要前两个数据块。 这将产生如下的布局: 0123456/001/0e15/a644/897219acb4b597f651d69a4d/file 完全完整的第一级和第二级将在每个第一级目录中具有2 16个第一级目录和2 16个第二级目录,卷上总共有2 32个目录。 因此假设的5百万个文件子项目因此将具有2 16个第一级目录,每个大约76(+/- 2)个二级目录以及每个第二级目录中的一个或两个第三级目录。 这种布局有更多的元数据效率。 我只是不知道是否值得努力改变现在的情况。
有没有一种方法可以告诉docker只绑定转发的端口到IPv4接口? 我有一台机器在禁用IPv6的Digital Ocean上运行: # echo '1' > /proc/sys/net/ipv6/conf/lo/disable_ipv6 # echo '1' > /proc/sys/net/ipv6/conf/lo/disable_ipv6 # echo '1' > /proc/sys/net/ipv6/conf/all/disable_ipv6 # echo '1' > /proc/sys/net/ipv6/conf/default/disable_ipv6 # /etc/init.d/networking restart ifconfig报告没有启用IPv6的接口: # ifconfig docker0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:1372 errors:0 dropped:0 overruns:0 frame:0 TX packets:7221 errors:0 dropped:0 overruns:0 carrier:0 […]
正如很多人在StackExchange和其他地方所说的那样,Linux的典型kernel / mmu页面大小是4 KiB。 我已经证实,我的操作系统/体系结构(RHEL 6.6,Intel Xeon E5-2690)就是这种情况。 除此之外, vmstat -s命令报告“页面翻页”和“翻页页面”,这些是在启动时从0开始的计数器。 我已经确认,在任何时候,这些值完全等于/proc/vmstat的pgpgin和pgpgout条目的值(vmstat命令是从/proc/vmstat ?获取它们的值)。 其他的命令,特别是在特定的时间间隔内, pgpgin/s sar -B pgpgin/s和pgpgout/s为Kibibytes每秒调入/调出。 在最近的testing中,我看到来自sar的pgpgin/s和pgpgout/s值也完全对应于从指定时间间隔的vmstat值计算得出的速率。 这导致我得出结论,vmstat正在报告大小为1 KiB的页面的值。 因此/proc/vmstat的pgpgin/out值是自引导以后进入/退出的KiB的数量。 我的问题是: 这是一个有效的结论,而且 如果是这样,为什么vmstat和其他设施报告1 KiB页面而不是4 KiB页面是操作系统和体系结构的“共同货币”? 特别是,vmstat说“ pages paged in/out ”,而不是“ KiBs paged in/out ”。 这很混乱。
我想知道哪个是在Debian Jessie中重新启动networking服务的正确方法。 我知道我可以使用: service networking restart 要么 /etc/init.d/networking restart 无论如何,给了我的问题上的SSH连接,或 invoke-rc.d networking restart 和其他两个方法systemctl和ifup / ifdown 。 但是,哪个是正确的做法呢?
有很多类似这个问题的答案,但我似乎无法find一个明确的答案。 它们要么至less抓取一次公钥,要么完全忽略该密钥,要么直接写入known_hosts文件(意味着没有哈希) 我有服务器的指纹和/或公钥。 我想要一个shell命令将其添加到客户端的known_hosts文件。 这必须使用任何configuration(散列/不散列) 另外,脚本会从这个服务器做一个git pull,所以我不知道在这个时候提供端口信息是否相关。 请告诉我,如果是。 谢谢。 如果这个问题已经得到解答,我可以随意指出正确的方向。 PS – 额外的信息:我问的关于端口的原因之一是因为我做了以下没有成功(我知道这是从主机,我宁愿不要做)的关键: ssh-keygen -R my.awesome.host # hostname ssh-keygen -R 1.2.3.4 # IP ssh-keygen -R my.awesome.host,1.2.3.4 ssh-keyscan -H my.awesome.host,1.2.3.4 >> ~/.ssh/known_hosts ssh-keyscan -H 1.2.3.4 >> ~/.ssh/known_hosts ssh-keyscan -H my.awesome.host >> ~/.ssh/known_hosts 但是,当我克隆(通过SSH)我遇到了一个响亮的: The authenticity of host '[my.awesome.host]:7999 ([1.2.3.4]:7999)' can't be established. RSA key fingerprint is […]