我有一台 128 GB Ram 的机器,它使用 Apache2 作为 Web 服务器(在这台机器上没有数据库服务器,数据库机器是一台 64 GB Ram 机器,可以处理 2000 个最大连接)。我使用监控工具看到目前大约有 44 个忙碌的工作人员和 12 个空闲的工作人员,我的 prefork 模块的最佳理论值是多少?
我有时会在高负载时间加载网站时出现空白页面,并在我的 apache 错误日志中出现此错误:
【注意】child pid 13595 exit signal Segmentation fault (11)
如何解决这个问题呢?
我的 Apache2 Prefork 模块配置:
StartServers 3
MinSpareServers 3
MaxSpareServers 5
ServerLimit 3200
MaxClients 3100
MaxRequestsPerChild 0
Run Code Online (Sandbox Code Playgroud)
在 www 机器上免费 -h:
总计:128 G 空闲空间:97GB(运行 apache2)共享 0b 缓冲区 1.9G 缓存 23G
Apache2 和其他程序使用的 Ram:
Private + Shared = RAM used Program
96.0 KiB + 61.0 KiB = 157.0 …
Run Code Online (Sandbox Code Playgroud) hosting mpm-prefork shared-hosting segmentation-fault apache-2.2
我正在尝试了解 TCP/IP 堆栈中的应用层协议。我知道 HTTP 和 DNS 协议都停留在顶层(应用层)。因此,当浏览器想要访问资源时,它必须向 HTTP 服务器发送请求,例如:
GET www.pippo.it/hello.htm HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
这个请求遵循 HTTP 协议的规则,它使用页面 URL,而不是 IP 地址。
我知道将 URL 转换为 IP 需要 DNS 请求。所以我的问题是:HTTP 会调用 DNS 协议吗?这对我来说似乎是不可能的,因为两者都是顶层协议(因此 DNS 无法为 HTTP 提供服务)。以同样的方式,即使 TCP(停留在较低级别)也无法在更高级别的协议(如 DNS)上请求服务。
那么DNS请求什么时候发生呢?谁执行了这样的请求?
我在我的 apache 访问日志中找到了这个
access.log:555.555.555.555 - - [05/May/2011:12:12:21 -0400] "GET /somedir/ HTTP/1.1" 403 291 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0"
access.log:555.555.555.555 - - [05/May/2011:12:12:29 -0400] "GET /somedir/ HTTP/1.1" 200 7629 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0"
Run Code Online (Sandbox Code Playgroud)
所以 /somedir/ 有 .htaccess 文件,看起来像
Order Deny,Allow
Deny from all
Allow from 333.333.333.333
Allow from 444.444.444.444
Run Code Online (Sandbox Code Playgroud)
htaccess 未在时间范围内修改(12:12:21 和 12:12:29 之间的 8 秒)
任何想法如何可能达到 403 Forbidden 然后在 8 秒后达到 200 OK;我很困惑
我需要支持理解这 4 行。看起来像 tcp 转储,但我实际上不明白这里到底发生了什么。
13:13:22.407445 IP 192.168.246.128.54955 > 192.168.246.13.80: S 2910497703:2910497703(0) win 5840 <mss 1460,sackok,timestamp="" 518611="" 0,nop,wscale="" 6="">
13:13:22.407560 IP 192.168.246.13.80 > 192.168.246.128.54955: S 3762608065:3762608065(0) ack 2910497704 win 64240 <mss 1460,nop,wscale="" 0,nop,nop,timestamp="" 0="" 0,nop,nop,sackok="">
13:13:22.407963 IP 192.168.246.128.54955 > 192.168.246.13.80: . ack 1 win 92 <nop,nop,timestamp 518611="" 0="">
13:13:22.408321 IP 192.168.246.128.54955 > 192.168.246.13.80: R 1:1(0) ack 1 win 92 <nop,nop,timestamp 518611="" 0="">
Run Code Online (Sandbox Code Playgroud) 做一个top
检查io等待,我得到这些数字:
Cpu(s): 6.7%us, 1.4%sy, 1.2%ni, 85.5%id, 5.0%wa, 0.0%hi, 0.3%si, 0.0%st
Run Code Online (Sandbox Code Playgroud)
看看这些数字 (%us ~= %wa),它们是否意味着:
我在互联网上搜索过但找不到任何令人满意的答案。有人可以指导吗,这是我的困惑/问题。
很容易,我正在编写一个脚本,它需要一些浮点后有 2 位数字的值。尝试使用bc
我不明白如何使用“比例”,即
A=12 ; bc <<< $(($A/5))
Run Code Online (Sandbox Code Playgroud)
这是正确的,但添加“比例”会导致错误:
A=12 ; bc <<< 'scale=2;$(($A/5))'
(standard_in) 1: illegal character: $
(standard_in) 1: illegal character: $
Run Code Online (Sandbox Code Playgroud) 我在 SSD 驱动器配置为 RAID 1 的 Debian 服务器上运行此命令:
ionice -c 3 find . -type f -amin -1440 -mmin +1441 -not -path custom/ -print0
在包含超过 170 万个文件和目录的路径上。
我注意到每次运行此命令时,服务器负载都会达到峰值,我想知道是否有任何方法可以限制find
速度,使其不会产生如此高的负载。
另外我想知道这里是否有特定于 SSD 的选项以减少负载生成find
需要备份 MySQL 5.1 数据库。数据库安装在 Windows Server 2003 上。我用谷歌搜索它,我发现了很多工具,但我对选择什么并不感到困惑。
我的要求是:
你有什么好的建议给我吗?