我们正在使用 SQL Server 2008数据库邮件向我们的网站访问者发送电子邮件。我不知道 SQL Server 是通过从队列中拾取来一一发送邮件,还是会使用线程以同时方式发送电子邮件。
如果数据库邮件使用线程,有没有办法增加并发运行的线程数?
我有一个多核 Kubernetes 集群,其中有多个 Pod,配置的 CPU 限制为 500 毫核:
resources:
limits:
cpu: "500m"
Run Code Online (Sandbox Code Playgroud)
在单个 Pod 中是否可以有多个线程并行运行(同时,在同一时刻)?
根据我的理解,当限制小于 1000 毫核时,pod 永远不可能有多个线程并行运行。这是对的吗?
我在扩展多进程/多线程 C++ 应用程序时遇到奇怪的行为。该应用程序包含 10 个独立的进程,通过Unix 域套接字进行通信,每个进程都有大约 100 个执行 IO 的线程以及该 IO 上的多个进程。该系统是OLTP,事务处理时间至关重要。IPC IO 基于在 unix 域套接字上使用 zmq 的 boost 序列化(在我们的本地服务器(两个具有 24 核的旧 xeon)上的所有基准测试中,它足够快)。现在,我们在具有更多内核的系统上观察到极其低的性能!
\n1x Intel\xc2\xae Xeon\xc2\xae X5650 - 虚拟 - 6 核 - TPS 约为 150(预期)
\n1x Intel\xc2\xae Xeon\xc2\xae E5-4669 v4 - 专用 - 32 核 - TPS 约为 150(预期) 700(预期)
\n2x Intel\xc2\xae Xeon\xc2\xae E5-2699 v4 - 专用 - 88 个核心 - TPS 约为 90(应该约为 2000)
在第三台服务器上运行多个基准测试显示处理器能力完全正常。内存带宽和延迟看起来正常。
\nhtop 在内核上显示非常高的时间(红色部分)。所以我们的第一个猜测是某些系统调用需要很长时间才能完成,或者我们在多线程代码中做错了什么。(见下图)perf top
报告一个特定的系统调用/内核例程 ( native_queued_spin_lock_slowpath …
如果 Apache 有 10 个请求,它是一个一个处理它们,所以当 R3 完成时,它开始运行 R4,还是触发 10 个进程/线程/任何并同时解决?
现在了解一些背景信息:我有一个 PHP 脚本,它最多需要两分钟来完成一些过程。我的问题是:当客户端等待这 2 分钟时,是否正在处理所有其他客户端请求?还是也等着这个结束?
顺便说一下,如果有同时请求,我该如何处理?让我们说给他们一个限制。或者限制消耗的资源。例如,我希望服务器在为 webapp 提供服务时使用其 80% 的性能,而对于那些长时间的操作只使用 20%,因为我不急于结束它们。
我不知道这是否重要,但都在 PHP 中。
我有一台服务器,我想专门用于通过 LibreOffice将doc
文件转换为该服务器pdf
。服务器有 6 个内核,LibreOffice 是单线程的。这意味着生成单个 pdf 使用了我总 CPU 功率的 16.666%。转换文件可以从控制台完成并且是一个阻塞任务,即它等待直到完成将控制返回到控制台。
我可以启动 6 个无头办公实例(在 6 个不同的端口上),并通过一些自定义代码确保每个工作请求都发送到不同的实例。我必须检查所有 6 个实例何时都忙于工作,以便将工作保留在待处理的队列缓冲区中。我还必须管理超时/错误以重新启动特定实例并尝试重做导致问题的特定工作,可能再尝试 1-2 次,直到我放弃。
上述场景不会为单个文档使用 100% 的 cpu,但它允许一次转换多达 6 个文档,而不是一个接一个地处理它们,功率仅为 16.6%。
我的问题是:是否存在管理此类场景的产品/工具?可能是可以协调此类任务的通用东西(当然不知道有关 LibreOffice 的任何细节)。
在 Linux 上,上下文切换可能是因为应用程序进行系统调用,或者因为调度程序将进程从 CPU 交换到另一个进程。
在 Windows 上,上下文切换的可能原因是什么?具体来说,从我读过的文献来看,高线程数是我迄今为止遇到的高上下文切换的唯一原因。还有其他人吗?
最后,换出同一进程的两个线程的成本与换出两个不同进程的成本不同吗?
Apache 与 Nginx 的性能比较是明智的,因为 Apache 基于线程(对于每个新连接一个新线程),而 nginx 基于进程(对于到服务器的每个新连接一个新进程)。因此 Nginx 的性能更好,因为基于进程。但是如果它们部署在 Linux 上有什么关系,因为没有线程的直接概念,并且在 Linux 中线程被映射到内核级别的进程。因此,Linux 上的 Apache 和 Nginx 的性能应该相同,但 Nginx 比 Apache 好,为什么?
apache-2.2 ×2
linux ×2
process ×2
threads ×2
cpu-usage ×1
debian ×1
email ×1
kernel ×1
kubernetes ×1
nginx ×1
php ×1
queue ×1
sql-server ×1
windows ×1