我正在尝试在 VPS 上设置 Web 服务器。我的问题是 php-cgi 进程的内存使用量随着时间的推移而增加,即使该网站根本没有收到任何流量。(它暂时在防火墙后面)
VPS 有 360MB 内存。我正在使用 Debian Lenny 32bit 及其 lighttpd 和 php5-cgi 软件包。除了一些配置更改(如下所列),我正在使用 Debian 的库存设置。
该网站基于 Drupal。使用 Drupal 的 devel 模块,我可以看出 PHP 脚本的内存使用量平均不到 20KB,并且永远不会超过 8MB。
以下是输出的相关部分ps aux:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
www-data 29871 0.0 1.7 54552 6368 ? Ss Aug12 0:00 /usr/bin/php-cgi
www-data 29873 0.0 7.4 65808 27468 ? S Aug12 0:00 /usr/bin/php-cgi
www-data 29874 0.0 3.7 55808 13736 ? S Aug12 0:00 /usr/bin/php-cgi
www-data …Run Code Online (Sandbox Code Playgroud) 我正在使用 HP DL 160 G6 服务器,根据规范,该服务器采用 PC3 注册或无缓冲。当我将两种类型的内存结合起来时,系统将不会 POST。当我只使用列出的第一种类型的内存时,系统将 POST。
我有两块标有服务器的 HP 内存
PC3-10600E-9-10-E0
Run Code Online (Sandbox Code Playgroud)
然后我有一些重要的记忆标记
PC3-10600R-9-10-B0
Run Code Online (Sandbox Code Playgroud)
我敢打赌,R 表示注册内存,E 表示 ECC - 那么关键的内存不应该根据 HP 规范与系统一起启动吗?或者 E 是否意味着它是无缓冲的,因此我不应该根据此 HP 内存配置文档进行混合和匹配?
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1540673 bytes) in /home/appdev/glicious/Nutrition.php on line 41
如果您没有注意到,134217728 比 1540673 大两个数量级。
我已经使用 Server 2008 和 IIS 7 设置了 Tomcat 服务器。
如何判断 JAVA_OPTS 环境变量是否正在被实际使用?
我之前听说我必须编辑 service.bat 文件才能使用 JAVA_OPTS 环境变量,但是我怎么知道它是否成功?
我一直无法找出是否有办法在日志或其他更定量的东西中查看它。我能想到的尝试测试它的唯一方法是编辑变量并尝试判断性能是否存在差异。我将 JAVA_OPTS 设置为以下内容:
-server -Xmx1k -Xms1k-Xmn1k -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:PermSize=1k -XX:MaxPermSize=1k
Run Code Online (Sandbox Code Playgroud)
另外,我发现文档说要将 service.bat 中的以下行更改为:
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 256
Run Code Online (Sandbox Code Playgroud)
到:
"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" %JAVA_OPTS%
Run Code Online (Sandbox Code Playgroud)
我运行命令时没有出现错误
service install ServiceName
Run Code Online (Sandbox Code Playgroud)
到目前为止,在我使用更改的内存设置重新安装服务之前,一切似乎都像往常一样快速运行,这让我认为 JAVA_OPTS 没有影响任何事情。
对不起,如果这是一个广泛的问题,但我还没有找到一个很好的线索来了解后端实际发生的事情。有人可以对此有所了解吗?
mysql tuner 报告 mySQL 可以使用 166% 的已安装内存,我如何限制内存使用?
[!!] 最大可能内存使用量:426.8M(已安装 RAM 的 166%)
在我们的一台 Debian 服务器上对 LVM 进行压力测试时,我遇到了这个问题,即内存会被大量填满,导致服务器内存不足,但没有进程会占用内存。有关htop 中使用的颜色的说明,请参见http://i.imgur.com/cLn5ZHS.png,并参见https://serverfault.com/a/449102/125894。
为什么会这样?
有什么方法可以查看正在使用内存的进程吗?
htop 被配置为不隐藏任何进程,那么 htop 缺少什么?
在这种特殊情况下,我可以肯定地说它是由 lvmcreate、lvmremove 或 dmsetup 直接或间接引起的,因为我正在对其进行压力测试。请注意,这个问题不是关于解决 LVM 问题,而是关于为什么任何进程都没有声明内存。停止所有 LVM 命令确实会将内存降低到 <600MB。
的输出free -m:
total used free shared buffers cached
Mem: 32153 31958 194 0 52 3830
-/+ buffers/cache: 28075 4077
Swap: 975 0 975
Run Code Online (Sandbox Code Playgroud)
由于它的长度,顶部的输出,在 pastebin 上:http : //pastebin.com/WchrpF7W
Memtest86+ - http://www.memtest.org
Memtester - http://pyropus.ca/software/memtester/
我正在查看上述内存测试工具。
这两者有什么区别?(应该在哪方面用不同的方式?)
我们有一些 64 位 Linux 机器 (RHEL6) 在 Microsoft Windows 2012 Server (Hypervisor) 上运行,但存在同样的问题。这些 Linux 来宾服务器在 MS Windows Cloud (Hyper-V) 中运行,其中有 16 个主机服务器,每个服务器具有 256 GB 的 RAM。
它们从以下内存使用情况开始:
# free -m
total used free shared buffers cached
Mem: 48259 653 47606 0 19 106
-/+ buffers/cache: 527 47732
Swap: 13999 0 13999
# cat /proc/meminfo
MemTotal: 49418204 kB
MemFree: 48749868 kB
Buffers: 20080 kB
Cached: 108564 kB
SwapCached: 0 kB
Active: 149652 kB
Inactive: 98856 kB
Active(anon): 120124 kB
Inactive(anon): 1884 …Run Code Online (Sandbox Code Playgroud) CPU [ 0.0%] Tasks: 15, 2 thr; 1 running
Mem [|||| 14/256MB] Load average: 0.00 0.00 0.00
Swp [| 1/256MB] Uptime: 15 days, 06:02:31
Run Code Online (Sandbox Code Playgroud)
以上是没有 Ghost 实例时我的服务器(Ramnode,256MB RAM 和 256MB Swap)上的内存使用情况。在我的 VPS 上,我正在运行 4 个Ghost实例。
因此,当我使用命令在此处运行 Ghost 实例时node index.js,它会生成 5 个工人。
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
10380 user 20 0 975M 80328 7712 S 0.0 30.6 0:00.00 node index.js
10381 user 20 0 975M 80328 7712 S 0.0 30.6 …Run Code Online (Sandbox Code Playgroud) 我有一个容器泄漏内存。或者至少,报告的内存消耗快速增加。如果我跑到顶部,我会得到这个:
top - 16:56:51 up 6 days, 17:25, 0 users, load average: 0.16, 0.27, 0.31
Tasks: 4 total, 1 running, 3 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.3 us, 0.7 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 7676380 total, 4089380 used, 3587000 free, 675164 buffers
KiB Swap: 0 total, 0 used, 0 free. 2586496 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 …Run Code Online (Sandbox Code Playgroud) memory ×10
linux ×4
apache-2.2 ×1
cgroup ×1
docker ×1
ghost-blog ×1
hp ×1
hp-proliant ×1
hyper-v ×1
java ×1
lighttpd ×1
lvm ×1
memory-usage ×1
monitoring ×1
mysql ×1
node.js ×1
php ×1
php5 ×1
test ×1
tomcat ×1
ubuntu ×1
web-server ×1