小编Dan*_*ola的帖子

你怎么知道w3wp.exe在做什么?(或如何诊断性能问题)

我在我们制作的网站中遇到了性能问题,我不确定如何开始诊断它。

简短的描述是:我们有一个非常小的站点(http://hearablog.com),流量很少,在一个糟糕的专用服务器中,CPU 总是很高,有时它会保持 100% 几分钟,还有 w3wp.exe正在服用大部分。一个典型的场景是 w3wp.exe 占 60%,SQL Server 占 30% 左右。我们的数据库也很小。

详细说明和更多详细信息:

  • 该站点由 Cari.Net 托管在一个非常糟糕的服务器中。从一开始我们就觉得服务器的行为不太正确,就像有些事情会花费太长时间,所以这可能是从一开始的配置问题。这可能也是我们得到了一个虚拟服务器,而我们应该有一个专门的一个,虽然我们没有证据说会中指出,除了服务器往往是相当缓慢的事实。

  • 服务器是 Windows 2008 Standard 64 位,带有 SQL 2008 Express

  • 硬件是 Celeron 2.80 GHz,1Gb RAM

  • 该网站采用 ASP.Net MVC 开发,使用实体框架进行数据访问。

  • 现在,这是非常糟糕的硬件,但我和这些家伙一起使用过其他服务器,具有相同(或更差)的硬件,并且性能比这好得多。也就是说,其他服务器有 W2003 和 SQL2005,我使用的是 ASP.Net“WebForms”2.0,没有 MVC,没有 LINQ,没有 EF;所以我不确定去 2008 年/其他东西是否意味着预计会有很大的性能损失。

  • 我定期提供 MP3 文件(5-20​​ Mb),这是一个稍微不寻常的负载,也许这会导致某种问题?
    这会导致 w3wp 使用大量 CPU 吗?

  • 磁盘使用率似乎很低。内存通常在 90% 左右,但磁盘使用率似乎表明它没有太多分页。

  • 我每天都会收到大量关于 SQL 超时的电子邮件,查询时间超过 30 秒,尽管我们所有的查询都非常简单(或者应该是,但 EF 可能把它搞砸了)。

这就是资源监视器在这些 100% CPU 的“冲刺”之一中的样子,以防万一那里有任何有用的东西。

替代文字

以及一些性能计数器的快照: 替代文字

现在,让我非常困惑的是 w3wp 的 CPU 使用率是如此之高。它真的不应该做太多......所以我的问题是...... …

windows iis performance asp.net-mvc

43
推荐指数
2
解决办法
7万
查看次数

如何在 Apache 中使用 .htaccess 删除 HTTP 标头?

我有一个网站,它为 PHP 请求发送“缓存控制”和“pragma”HTTP 标头。
我没有在代码中这样做,所以我假设它是某种 Apache 配置,正如这个问题所建议的那样(对于这个问题的上下文,你真的不需要去那里)

我的 .htaccess 文件中没有任何内容,所以它必须在 Apache 的配置中,但我无法访问它,这是一个共享主机,我只能通过 FTP 访问我的网站目录。

有什么方法可以将指令添加到我的.htaccess 文件中,以删除全局配置添加的标头,或者以其他方式覆盖该指令,以便它们不会首先添加?

非常感谢
丹尼尔

.htaccess remove http-headers apache-2.2

18
推荐指数
1
解决办法
3万
查看次数

在 Windows 中导入包含二进制 BLOB 的大型 MySQL 转储文件时出错

我正在尝试将我从托管公司获得的 MySQL 转储文件导入我的 Windows 开发机器,但我遇到了问题。

我正在从命令行导入它,但出现了一个非常奇怪的错误:

ERROR 2005 (HY000) at line 3118: Unknown MySQL server host '??*á±dÆ?N?Æ·h^ye"??i? Z+-$???Y.??|??l?/l ??î7æ?X?XE.º?[;?ï?éµ?º???].???9dë??'?ÿG??0à¡úè???ù??¥'?NÑ' (11004) )

替代文字

我附上截图是因为我假设二进制数据会丢失......

我不太确定问题是什么,但两个潜在的问题是文件的大小 (2 Gb),它不是特别大,但也不是特别小,另一个是这些表中的许多都有其中的 JPG 图像(这就是为什么文件在大多数情况下是 2Gb 大的原因)。
此外,转储是在 Linux 机器中进行的,我正在将其导入 Windows,不确定这是否会增加问题(我知道不应该)

现在,二进制垃圾就是我认为文件中的图像可能有问题的原因,但我过去能够从同一托管公司导入类似的转储,所以我不确定可能是什么问题。

此外,考虑到它的大小,试图查看这个文件(尤其是第 3118 行)是不可能的(我对 Linux 命令行工具如 grep、sed 等不是很方便)。

该文件可能已损坏,但我不确定如何检查它。我下载的是一个 .gz 文件,我用 WinRar“测试”了它,它说它看起来不错(我假设 gz 有某种 CRC)。如果你能想到更好的方法来测试它,我很乐意尝试。

任何想法可能会发生什么/如何克服这个错误?

我对数据并不是特别感兴趣,因为我只想将其作为开发人员的副本,所以如果我不得不丢失一些记录,我可以接受,只要模式保持完美。

谢谢!
丹尼尔

mysql binary import

14
推荐指数
2
解决办法
2万
查看次数

如何让 SQL Server Management Studio 2008 自动连接到我的实例?

我正在运行具有 3 个数据库实例的服务器。
现在,当我打开 Management Studio 时,它会打开“连接”提示,让我选择我想要的实例(或连接到其他任何东西)。

是否有可能拥有它,以便当我打开它时,它已经连接到这 3 个实例,因此我可以立即开始工作并保存几次点击?老实说,它每天可以为我节省数百次点击。

这相当于我们在 SQL 2000 企业管理器中所拥有的,您可以在其中“注册”服务器,并且它们总是在那里,只需单击一下即可。

编辑:澄清我在寻找什么......在我们拥有企业管理器和查询分析器之前。现在 SSMS 是这两者的混合体,但“连接”部分的工作方式与查询分析器完全一样。
我每天做的是打开 SSMS 来管理数据库,检查它们的统计信息,到处重建索引,我没有用它来运行那么多查询,所以我正在寻找一种方法来让 SQL 实例可用登录时自动在对象资源管理器上。现在这是不可能的吗?:-(

sql-server-2008 ssms

11
推荐指数
4
解决办法
2万
查看次数

部分行程/短行程/半行程硬盘?

这里有人可以向我解释这个词的含义吗?(我已经看到 3 个术语提到的同样的事情)。

起初,当我读到它时,出于某种原因,我明白这是在磁盘的盘片上拆分字节的某种方式,这听起来是个好主意,显然没有意义,因为那不会切割磁盘大小减半(并且磁盘可能已经在盘片之间拆分字节)...

我所理解的最好的一点是,基本上不是为整个磁盘大小创建一个分区,而是创建 2 个分区,并且只使用其中的一个,要么位于“中心”,要么位于“盘的边缘”,并且由于两者之一更快(人们似乎不同意哪个更快),这使一切变得更好。

我理解正确吗?
有没有人用他们的驱动器尝试过这个并且有一个好的结果?

谢谢!

performance hard-drive

8
推荐指数
1
解决办法
7837
查看次数

在批处理文件中查找星期几?(Windows Server 2008)

我有一个从批处理文件运行的进程,我只想在一周中的某一天运行它。
是否有可能获得星期几?

我发现的所有示例都以某种方式依赖“date /t”返回“Friday, 12/11/2009”,但是,在我的机器中,“date /t”返回“12/11/2009”。那里没有工作日。

我已经检查了我机器的“区域设置”,长日期格式确实包括工作日。短日期格式没有,但我真的不想改变它,因为它会影响我做的很多事情。

windows-server-2008 ms-dos batch date

8
推荐指数
4
解决办法
11万
查看次数

如何设置由 S3(或类似)支持的 SFTP 服务器

我需要设置一个本质上具有非常大容量的 SFTP 服务器。我需要向我们的合作伙伴之一提供 SFTP 登录详细信息到服务器,他们将在其中上传数百万个文件,总计数百 TB。然后我会选择性地阅读其中的一些文件。这是唯一的实际要求,任何技术选择都可供选择。

我想到的最简单的方法是让某种 EC2 实例运行 SFTP 服务器,这样上传的任何内容要么直接发送到 S3,要么某种进程在上传时发现新文件,将它们复制到S3,并从磁盘中删除它们。

这是最好的方法吗?有没有其他方法可以获得基本上具有“无限且神奇增长的磁盘空间”的服务器?

谢谢你的帮助!丹尼尔

sftp amazon-s3 amazon-ebs amazon-web-services

8
推荐指数
2
解决办法
3万
查看次数

如何轻松地密码保护 Apache/Windows 中的站点?

我有一个网站托管在 Apache(在 Windows 上),我想保护它,以便任何人进入都需要输入密码。这并不意味着要成为安全堡垒,我知道这很糟糕,但总比没有好,而且我不想通过任何可以使其更安全的替代方案(它们确实不值得为了这)。

我想要的是弹出典型的 HTTP 身份验证对话框,要求访问者输入密码。每个人都将拥有相同的密码。事实上,如果我可以将用户名设为空白,那就太理想了。否则,每个人都将拥有相同的用户名。

你能告诉我我该怎么做吗?我发现的所有教程都是针对更高级的用例,其中使用了机器的实际用户/密码。
是否可以将其设置为文件中的硬编码密码?还是我需要创建一个 Windows 用户?

windows password apache-2.2

4
推荐指数
1
解决办法
1万
查看次数

Linux(默认情况下)将有关磁盘中文件的信息缓存多长时间?

我正在测试我对某些代码所做的某些更改是否有效。为此,我需要知道文件系统缓存通常是如何工作的。我假设我们得到的是默认值,因为我们可能没有对此进行任何有趣的调整。

本质上,如果我从我的代码中询问“这个文件是否存在?”,答案会在“x”毫秒后返回。如果我后来又问了几分钟,答案回来了,快,所以我猜有一些缓存对那里发生的。

如果我想再次测试并刷新缓存,我应该等待多长时间,所以它会再次花费“很长时间”?(我想看看我是否修复了我的网络应用程序中的性能问题,但我只能知道它是否已修复,如果有关文件存在的信息未缓存,因为如果缓存,它确实运行得很快)

我知道这不是最有说服力的问题,答案可能是“视情况而定”,我要求的是理智的默认。换句话说,如果我在 3 小时或 6 小时后再次测试,我可以指望它不会被缓存吗?

据我所知......这是一个 Ubuntu 服务器,内核版本:3.9.3-x86-linode52,Ubuntu 版本:Ubuntu 12.04.3 LTS,托管在 Linode 上。文件系统是ext3

谢谢!
丹尼尔

linux filesystems cache

2
推荐指数
1
解决办法
337
查看次数