我正在使用 Ubuntu 9.04 中的 tomcat6 包运行 Tomcat,它使用 jsvc 从 Tomcat 中创建了一个守护进程。我想知道-Xmx
为 Tomcat设置 Java 堆选项的正确方法。我想把配置放在风格最正确的地方,以及最不可能被 Ubuntu 包更新覆盖的地方。
我现在看到的选项:
/etc/init.d/tomcat6
./usr/share/tomcat6/bin/catalina.sh
./usr/share/tomcat6/bin/startup.sh
以将 CATALINA_OPTS 设置为具有所需的标志,然后将 CATALINA_OPTS 作为环境变量导出。(这看起来会被 接收catalina.sh
。)最后一个选项听起来是最好的,它在增加 Java 的堆空间在 Tomcat 启动脚本中被提倡(没有解释原因)。但我想得到第二意见。有人想确认没有更好的方法吗?
我在 NTFS 文件系统上有一个巨大的目录 (即包含数千万或数亿个后代节点的顶级目录,文件节点的深度可能平均约为三层),我需要更改其权限。特别是,我需要授予新用户(或组)对目录树中绝对所有内容的只读访问权限。
最明显的地方是在 Windows 资源管理器中右键单击顶级目录并转到目录属性窗口的安全选项卡。然而,当尝试一些显而易见的事情时,Windows 资源管理器似乎很高兴递归遍历整个目录树并尝试修改树中每个节点的权限。对于这么大的目录,这效率极低!
任何人都可以在没有这种递归下降的情况下提供更改权限的任何提示吗?我需要单击 GUI 中的特定内容吗?我需要使用命令行工具吗?这可能是以前的系统管理员对该目录中的权限做了一些奇怪的事情的结果吗?
我还需要启用网络共享并让用户/组通过网络挂载目录。还没有尝试过,所以我不知道当我尝试启用共享时是否会出现类似的蠕虫。
如果重要的话,这是在 Windows 2008 Server 上。
编辑:人们是对的,授予域组而不是特定帐户的权限可能更有意义,所以我在上面记下了这一点(无论如何我就是这样做的。我不知道为什么我特别问关于在原始问题中添加用户。抱歉草率)。但当然,将组添加到文件夹的权限列表并不比添加用户更快(现有组均未分配只读权限)。
我想向大约有 10M 行的 Sql Server 表添加一列。我认为这个查询最终会完成添加我想要的列:
alter table T
add mycol bit not null default 0
Run Code Online (Sandbox Code Playgroud)
但它已经持续了几个小时。是否有任何快捷方式可以将“非空默认 0”列插入到大表中?或者这本质上真的很慢?
这是 Sql Server 2000。稍后我必须在 Sql Server 2008 上做类似的事情。
我有几个 perfmon 性能计数器,我想在很长一段时间内(比如一周或一个月)跟踪特定的 ASP.NET 应用程序。问题是性能计数器通常以进程为中心,而不是以 ASP.NET 应用程序为中心,或以 AppPool 为中心。因此,例如,我可以绑定计数器
.NET CLR Memory performance counters\# Gen 0 Collections
Run Code Online (Sandbox Code Playgroud)
到特定的 IIS 工作进程(令人讨厌的是,它是通过 w3wp、w3wp#1、w3wp#2 识别的——但要解决这个问题,请参阅如何将“w3wp”进程名称转换为 PID 或用户名?(即——“ w3wp#29) ),但我似乎无法将它绑定到“无论现在还是将来,碰巧正在运行 ASP.NET Application X 或 AppPool Y 的任何进程”。这意味着,如果 IIS 回收工作进程,或者如果有人重新启动 IIS,或重新启动机器,那么我的性能日志不能指望继续跟踪同一个 Web 应用程序。
即使工作进程(例如 w3wp.exe)重新启动、机器重新启动等,是否有一些技巧可以使用 perfmon 来监视给定的 webapp?
我在这里搜索其他问题时发现了几个可能的答案,但他们感觉不是 100% 正确(尽管我会赞成为什么他们实际上可能是正确的解释):
我对 NETWORK SERVICE 帐户(组?)在网络共享上工作感到困惑:
一方面,网络服务通常被描述为给定机器本地的帐户。(例如,请参阅此处的 serverfault或IIS 6.0文档中的 Microsoft访问控制。)因此它不是一个域范围的帐户。并且,例如,如果在 SERVERA 上的 NETWORK SERVICE 下运行的进程尝试请求 SERVERB 上的资源,则身份验证将不会在某个假设的 MYDOMAIN\NETWORK SERVICE 下,而是在 MYDOMAIN\SERVERA$ 下。(后者被称为 SERVERA 的“计算机帐户”。)
另一方面,我注意到我可以转到具有管理员权限的远程文件共享,并为 NETWORK SERVICE 的特定目录设置权限。(例如,我可以在 Windows 资源管理器中转到 \\MYSHARE,右键单击目录之一,转到安全 > 编辑 > 添加,在“输入要选择的对象名称”框中键入“网络服务”,然后单击“确定”。现在我在“组或用户名”列表中有一个新的网络服务条目,我可以更改它的权限,就像我可以更改“用户”组的权限一样。)
如果 NETWORK SERVICE 严格来说是一个机器对机器的帐户,我不明白在远程共享上为 NETWORK SERVICE 创建一组权限时会发生什么。该条目是否指的是一台特定(未指定)机器上的网络服务?通过图标来判断,技术上权限是针对 NETWORK SERVICE组的,而不是针对 NETWORK SERVICE用户的。但我似乎找不到任何关于 NETWORK SERVICE组的文档,或者与常规域组相比它是如何工作的。
到目前为止,我唯一的猜测是,如果您授予对 NETWORK SERVICE组的访问权限(假设有这样的事情),这相当于授予对整个域中所有“计算机帐户”的访问权限。(也就是说,在中央文件服务器上授予 NETWORK SERVICE 权限与授予 MYDOMAIN\SERVERA$、MYDOMAIN\SERVERB$、MYDOMAIN\SERVERC$、...、MYDOMAIN\MYLASTSERVER$ 权限相同。)
这是我最初询问的有关计算机帐户的问题的概括。我问:
当为“所有人”设置 Windows 权限时,这些权限是否适用于诸如 MYDOMAIN\MYMACHINE$ 之类的计算机帐户(又名机器帐户)?还是说,它们仅适用于普通用户/组?
但是,“每个人”是什么意思这个问题确实值得一个完整的、一般性的答案——理想情况下,这个答案对于不是 Windows 权限方面的深入专家的人来说是有意义的。(截至今天,我发现通过浏览谷歌搜索结果的前几页很难对每个人有一个很好的了解。)
似乎至少有一些微妙之处——例如,默认情况下,“所有人”中不包含“匿名”网络连接。
permissions ×3
windows ×3
asp.net ×1
java ×1
ntfs ×1
perfmon ×1
performance ×1
sql-server ×1
tomcat ×1
ubuntu ×1