我在服务器上有一个单线程进程,我想静态绑定到一个 CPU 内核并始终为其提供所有可用的计算能力(它是受资源不足严重影响的实时进程)。不幸的是,机器严重超载,因此 CPU 平均占用 60% 或更多 CPU,并且进程通常会窒息。我已经分配了实时循环优先级 99,但它仍然远非完美。
如何在启动时将所有其他进程分配给剩余的 7 个 CPU 核心,并让一个核心专用于这一进程?我说的是所有新生成的进程从一开始就已经绑定到 7 个内核的情况。
我在服务器上有一个单线程进程,我想静态绑定到一个 CPU 内核并始终为其提供所有可用的计算能力(它是受资源不足严重影响的实时进程)。不幸的是,机器严重超载,因此 CPU 平均占用 60% 或更多 CPU,并且进程通常会窒息。我已经分配了实时循环优先级 99,但它仍然远非完美。
如何在启动时将所有其他进程分配给剩余的 7 个 CPU 核心,并让一个核心专用于这一进程?我说的是所有新生成的进程从一开始就已经绑定到 7 个内核的情况。
为了平衡用户在共享计算服务器上的 CPU 消耗,我认为如果可以:
这个想法是用户可以调用任意数量的作业。但是如果有其他用户,他的优先级会下降,这取决于他要求多少。所以 A 可以一次使用所有 32 个内核。然后另一个用户 B 来了,只开始了一项工作。现在 A 的优先级应该低于 B。然后 C 来启动 8 个作业。他现在应该在 A 和 B 之间有一个优先级。但是,优先级实际上不应该基于进程的数量,而是基于它们的整体 CPU 需求——如果可以确定的话。
我想这可能与将相同份额的 CPU 分配给所有活跃用户相同,只要他们使用它并将其余的分配给所有想要更多的人。
你认为这有可能吗?
你觉得这有道理吗?
我们目前在 Windows 上运行了一些 ossec 代理,并实时监控激活的文件 - 在代理站点上具有以下配置:
<syscheck>
<!-- Frequency that syscheck is executed - default to every 2 hours -->
<frequency>7200</frequency>
<directories check_all="yes" realtime="yes">D:\path1</directories>
<directories check_all="yes" realtime="yes">D:\path2</directories>
<disabled>no</disabled>
<auto_ignore>no</auto_ignore>
</syscheck>
这基本上是可行的——除了实时报告文件的第一次编辑。同一文件的任何后续更改仅通过每 7200 秒的计划扫描报告一次,但在第一次编辑后不会触发实时通知。
如果我编辑另一个以前未触及的文件 - 它会在第一次更改时再次起作用,但之后不会。
是否有任何其他设置可以检查/更改/设置以可靠地获得文件更改通知?可以查看什么来确定问题?
这有点令人费解......非常感谢您的任何意见。
我的任务是创建两台 CentOS 7 服务器,其中不仅要复制数据库,还要复制文件。现在我的问题是,如果不是一百万个大小从几 KB 到 ~ 1 GB 的文件,那么可能会有几十万个文件。
我读过关于
现在,如果您一直在使用它或目前正在使用它,我想询问您对其中任何一种的体验。关于复制和删除的文件更改的性能如何?我非常害怕使用任何 rsync,因为我的经验是它对于很多小文件不是很快,因此我不能真正将它用于实时文件复制。还是我错了?请证明我错了。:)
或者也许我需要第三台和第四台服务器作为文件服务器?如果是,那么问题仍然存在:如何在两台服务器之间实时复制文件?
干杯!
我正在调试一个允许提交远程作业的 Linux 应用程序,并将每个作业的输出记录在一个新文件中。日志文件路径符合:
/joblogs/job_*/JOB.LOG
其中通配符代表唯一的作业编号。
我希望能够跟踪每个作业日志,包括在我发出 tail(或其他)命令后创建的新日志。我以为我可以使用multitail来做到这一点,但我无法弄清楚要使用的正确参数集。例如,
multitail -q 1 "/joblogs/job_*/JOB.LOG"
似乎以我想要的方式为每个新日志文件创建一个窗口,但它没有在文件窗口中显示任何输出。
任何人都知道如何使用 multitail 或其他 Linux 工具来做到这一点?