这是我在SF上问的第一个问题,所以要温柔的孩子。
随着我的台式机(大约 110 台左右)开始老化以及我的用户抵制 Windows 8,我开始注意到一个奇怪的趋势。我们主要是一家惠普商店。所以我遇到问题的台式机是 DX2200 和 DX2300 系列商务台式机。(是的,我知道它们很旧,但它们仍然可以用于我的用户使用这些机器的目的。)某些机器的用户抱怨机器声音很大和/或“赛车”。而且它们打开 Outlook 和 IE 等应用程序似乎非常缓慢。起初,我继续寻找病毒,但没有找到任何病毒,也找不到消耗资源的任务,这让我很困惑。Task man 显示 CPU 使用率很低,但风扇已经用完了。
为了解决这个问题,我从主板上拆下了散热器和风扇组件。我发现许多这些机器上的散热器化合物似乎已经变干了。我会把这种化合物描述为片状而不是光滑和粘糊糊的。这个问题的解决方法非常简单。只需按照制造商的建议清洁并重新涂抹一些糊剂。在过去的几周里,我在五个桌面上发生了这种情况。奇怪的巧合还是只是最终注意到这一点?谁知道。这解决了所有 5 台机器中 CPU 的问题。
虽然我从未认为这是一个问题,但现在我突然开始怀疑这是否是我的设施所独有的。我们是一家商业印刷厂,大楼内有化学品和溶剂。或者,这仅仅是对老化设备的维护问题。我倾向于相信这是一个“旧机器”问题。
我通常会从我正在工作的任何机器上取下盖子,只是为了物理检查风扇和散热器,但我现在已经添加了拉 CPU 散热器并重新涂抹化合物到工作台上完成的任何系统工作。
是否还有其他人在使用 HP 台式机/服务器时遇到相同或类似的问题?
我们有一台运行自定义工作负载的 Windows 2003 R2 Enterprise 64 位服务器,但遇到了奇怪的性能问题。下面的精简版本有一个较小的驼峰,但在质量上是相同的。
我们将其简化为一个简单的应用程序,仅做以下事情:
测试应用程序本身是Boost ASIO 多播接收器示例的略微修改版本,因此应该不会出现太多错误。下面的实际代码(!)...
每隔一段时间在负载下运行这个程序时,这个进程的 CPU 会随着内核代码中发生的所有处理而加速:
(此处仅显示 CPU 6。在此测试期间 (3h17m),所有其他处理器都处于空闲状态)
从图中可以看出,当负载峰值达到时,所有处理时间都发生在内核代码中。花费的时间主要用于延迟过程调用(最多 16.8%)和处理中断(最多 8.5%)。看起来有某种延迟清理正在发生,但我们不知道它可能是什么。
据我们所知,它仅发生在 W2K3E-64 上。
它发生在不同的硬件上(HS21、HS22、HS22V、HP DL380)。
在 Windows 2008 上运行测试应用程序在较小程度上(更频繁但较小的驼峰)演示了该问题。
我们如何解决这个问题,或者我们下一步应该看哪里?
示例中的实际代码:
void handle_receive_from(const boost::system::error_code& error,
size_t bytes_recvd)
{
if (!error)
{
++m_receivedPackets;
m_receivedBytes += bytes_recvd;
m_last64TotalBytes += bytes_recvd;
if ( ( m_receivedPackets & 0x3F ) == 0 )
{
printf( "Received %u bytes in %u packets. The average size of the last 64 …Run Code Online (Sandbox Code Playgroud)