我正在尝试在服务器端JVM中使用G1类型的垃圾收集器,而通常来说,gc暂停很短,有时会突然出现,然后出现问题。
在下面,我给出了这样一个长暂停的分解,该暂停总共需要27.79秒,其中23.923秒用于“ [Other:23923.6 ms]”中“ Other”所指示的阶段。 / p>
如果有人可以阐明我如何进一步理解这个特定GC循环阶段的原因,或者如何改善GC状况(这似乎占了大多数时间),我将不胜感激
<?php
include 'conf.php';
if ($_FILES["image"]["error"] > 0)
{
echo "<font size = '5'><font color=\"#e31919\">Error: NO CHOSEN FILE <br />";
echo"<p><font size = '5'><font color=\"#e31919\">INSERT TO DATABASE FAILED";
}
else
{
move_uploaded_file($_FILES["image"]["tmp_name"],"images/" . $_FILES["image"]["name"]);
echo"<font size = '5'><font color=\"#0CF44A\">SAVED<br>";
$file="images/".$_FILES["image"]["name"];
$sql="INSERT INTO eikones (auxon, path) VALUES ('','$file')";
if (!mysql_query($sql))
{
die('Error: ' . mysql_error());
}
echo "<font size = '5'><font color=\"#0CF44A\">SAVED TO DATABASE";
}
mysql_close();
答案 0 :(得分:1)
[时间:用户= 0.00 sys = 1.29,实际= 27.79秒]
在垃圾回收上,它几乎不花任何CPU周期,并且在内核中一直都花时间,甚至更多的时间,这表明该进程在内核执行中被阻塞了。主要嫌疑犯是您的系统交换。
其他潜在原因:
您还可以尝试使用-XX:G1LogLevel=fine/finer/finest
来提高GC日志的详细程度,看看是否有什么特别之处,但症状是系统级问题,而不是VM专有问题。