标签: threads

增加 FreeBSD 线程

对于每个连接创建一个线程的网络应用程序(如 Pound),线程数可能成为您可以处理的并发连接数的瓶颈。

我正在运行 FreeBSD 8 x64:

$ sysctl kern.maxproc
kern.maxproc: 6164

$ sysctl kern.threads.max_threads_per_proc
kern.threads.max_threads_per_proc: 1500

$ limits
Resource limits (current):
  cputime              infinity secs
  filesize             infinity kB
  datasize             33554432 kB
  stacksize              524288 kB
  coredumpsize         infinity kB
  memoryuse            infinity kB
  memorylocked         infinity kB
  maxprocesses             5547
  openfiles              200000
  sbsize               infinity bytes
  vmemoryuse           infinity kB
  pseudo-terminals     infinity
  swapuse              infinity kB
Run Code Online (Sandbox Code Playgroud)

我想增加到kern.threads.max_threads_per_proc4096。假设每个线程以 512k 的堆栈大小开始,我还需要更改什么以确保我不会给我的机器灌水?

freebsd threads sysctl

5
推荐指数
1
解决办法
2498
查看次数

限制linux内核中进程使用的最大线程数

我想我已经从当前尚未实现的 Linux 内核中找到了我需要的东西。

我需要一种方法来设置每个进程的最大线程限制。

这可能吗?

linux threads linux-kernel

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

如何在 IIS 7.5 下减少 ISAPI 应用程序的每进程线程数限制

我有一个在 Windows Server 2008 上的 IIS 7.5 中的 ISAPI 扩展下运行的 python WSGI 应用程序。我想增加工作进程的数量(我知道该怎么做)并减少每个进程的线程数(我不知道) t)。我担心我可能对 GIL 有太多的争论。

我已经看到诸如这些用于修改每个进程的线程的说明,但该设置似乎不会影响我的应用程序 - 我的 w3wp 进程仍然显示相同数量的线程。我认为这是因为该设置仅影响 ASP.NET 应用程序,而事实并非如此。

我知道我可以切换到不同的 python 运行时,例如 stackless 或 twisted。或者不同的主机,例如 Apache。或者不同的操作系统,例如 Linux。我现在负担不起这些任务,正在寻找一些短期调整。

iis python threads iis-7.5 isapi

5
推荐指数
0
解决办法
2035
查看次数

对于执行大量较慢 Web 服务调用的 Win2012 服务器,最佳 IIS 线程设置是什么?

我们有一个 Windows 2012 服务器,它使用 ASP.Net 和 .NET 4.5 通过基于 SOAP 的 Web 服务与许多其他服务进行通信。这些服务往往具有更高的延迟(即返回 2-6 秒)。我们相信我们有线程问题,因为服务器上的负载将开始生成 504 网关超时。对于与基于 SOAP 的高延迟服务进行大量通信的服务器,最佳线程配置是什么?

注意:所有 SOAP 调用都是同步的,很遗憾我们无法更改。没有异步

这里是IIS8/Win2012中的默认值

<system.web>
        <applicationPool maxConcurrentRequestsPerCPU="12" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000"/>
    </system.web>
Run Code Online (Sandbox Code Playgroud)

我读过的两篇参考文章。

http://blogs.msdn.com/b/tmarq/archive/2007/07/21/asp-net-thread-usage-on-iis-7-0-and-6-0.aspx http://fullsocrates .wordpress.com/2013/02/28/asp-net-threadstuning-thread-parameters-22/

threads asp.net-mvc windows-server-2012 iis-8

5
推荐指数
0
解决办法
3024
查看次数

在生产服务器上调试卡住的 apache/php 线程

我有一个带有 apache httpd 和 PHP 的 linux 系统,它使用LoadModule php5_module /usr/lib/apache2/modules/libphp5.so.

我已经启用了 apache 的 mod_status 模块,我看到一个特定的线程从昨天开始就一直在做某事。我还通过ps -axu | grep apache在许多线程中执行哪个给我特定的卡住线程来确认这一点:

www-data  5636  0.0  0.1 423556 23560 ?      S    XXXXX   0:04 /usr/sbin/apache2 -k start
Run Code Online (Sandbox Code Playgroud)

请注意,XXXXX 类似于昨天的 Jan02。此外,pid (5636) 与我在 apache 的 mod_status 页面中看到的卡住线程的 pid 相匹配。

我的问题是:我怎样才能做一个线程转储或类似的事情来查看这个东西在 PHP 代码中的确切位置?也许它正在等待某些东西(I/O、网络、数据库),但我不知道是什么。

在 Java 世界中,我会做一个kill -3 pid很好的可读线程转储,它会清楚地向我展示该特定线程的确切位置。php土地有类似的技术吗?

php troubleshooting threads dump apache2

5
推荐指数
1
解决办法
4717
查看次数

我可以在 Pod 中并行运行多个线程,并将 CPU 限制设置为 500 毫核吗?

我有一个多核 Kubernetes 集群,其中有多个 Pod,配置的 CPU 限制为 500 毫核:

        resources:
          limits:
            cpu: "500m"
Run Code Online (Sandbox Code Playgroud)

在单个 Pod 中是否可以有多个线程并行运行(同时,在同一时刻)?

根据我的理解,当限制小于 1000 毫核时,pod 永远不可能有多个线程并行运行。这是对的吗?

threads multi-threading cpu-usage kubernetes

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

为什么拥有更多更快的内核会使我的多线程软件变慢?

我在扩展多进程/多线程 C++ 应用程序时遇到奇怪的行为。该应用程序包含 10 个独立的进程,通过Unix 域套接字进行通信,每个进程都有大约 100 个执行 IO 的线程以及该 IO 上的多个进程。该系统是OLTP,事务处理时间至关重要。IPC IO 基于在 unix 域套接字上使用 zmq 的 boost 序列化(在我们的本地服务器(两个具有 24 核的旧 xeon)上的所有基准测试中,它足够快)。现在,我们在具有更多内核的系统上观察到极其低的性能!

\n

1x 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)

\n

在第三台服务器上运行多个基准测试显示处理器能力完全正常。内存带宽和延迟看起来正常。

\n

htop 在内核上显示非常高的时间(红色部分)。所以我们的第一个猜测是某些系统调用需要很长时间才能完成,或者我们在多线程代码中做错了什么。(见下图)perf top报告一个特定的系统调用/内核例程 ( native_queued_spin_lock_slowpath …

debian kernel threads multi-threading

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

Windows 可以配置为仅使用单个硬件线程吗?

是否可以将 Windows 配置为仅使用单个硬件线程。过去几年的每台机器似乎都至少是双核的,但是一些时序错误只有在线程串行执行时才能重现。我对 Windows Vista 尤其感兴趣。

windows multi-core threads

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

独立单线程优化服务器与在 VMWare 上运行的虚拟机

我为我的帖子的长度道歉。

我们最近将我们的业务系统转换为按内核数授权的产品。我们购买了 2 核许可证,目前正在 VMWare 上运行它。升级到下一个许可证级别的成本非常高。

我们遇到了一些非常重要的性能问题。我们已经消除了作为瓶颈的 RAM,以及网络、数据库和磁盘访问。我们遇到问题的时候并不总是以高 CPU 使用率为特征。有时cpu使用率低于20%,但CPU Ready却很高。

我正在考虑直接在单独的物理服务器上运行它的可能性。由于我仅限于两个内核,因此我会选择我可以获得的最快的“单线程性能”cpu,可能是 4 个内核。然后我会将业务系统设置为使用 2 个内核,并允许操作系统使用其他 2 个内核。

我的逻辑是这样的。现在 VM 有两个线程或 vCPU。这实际上只是一个 pCPU。即使我在没有超线程的情况下将它移到同一个盒子中,它也会获得 2 个完整内核而不是 2 个 vCPU。但是如果我选择一个在单线程上速度更快的芯片,我可以获得更多。我也可能会有一点收获,因为我不会再虚拟化它了。

我们目前的 6 核 cpu 根据 Passmark 得到以下分数。CPU 分数:8570 单线程性能:1403

我想要的 4 核处理器获得这些分数。CPU 分数:10231 单线程性能:2287

专门构建一个服务器来为这样的应用程序获得最佳的单线程性能是否有意义?有什么我需要担心的缺点吗?更新的操作系统会产生很大的不同吗?

当前的主机服务器具有以下规格: Proliant DL380 G7 2 物理 CPU:Intel(R) Xeon(R) X5675 @ 3.07 GHz 6 核 每个为 24 个逻辑处理器 (vCPU) 总数启用超线程。144 GB 内存

存储在较新的 SAN 上,我确信这不会影响我们的性能问题。

业务系统 VM 配置有 2 个 vCPU 和 24 GB RAM。操作系统为 Windows Server 2008 …

performance multi-core performance-tuning threads vmware-esxi

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

Gentoo 上的 PHP 线程

Gentoo 上的 PHP 支持threadsUSE 标志。据我所知,PHP 不支持真正的线程;我只知道可以使用 pcntl_fork() 进行分叉,但此功能由pcntlUSE 标志提供。那么threads如果 PHP 不支持线程,USE 标志到底有什么意义呢?

tl;dr - threadsUSE 标志在 Gentoo 系统上为 PHP 服务的目的是什么?

linux php gentoo threads apache-2.2

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

您希望网络服务器处理多少个并发请求

我知道这个问题没有直接的答案 - 取决于规格等。但是您希望服务器处理的同时请求的数量级是多少?目前,我们的服务器在超过 10 个线程同时运行请求后开始真正变慢。这对于普通的 webapp 来说是正常的吗?编辑:我目前不需要建议。我什至不负责与该服务器相关的任何事情。我告诉我的老板,我认为一个简单的网络服务器不能同时处理 10 个以上的线程是不正常的,他说我应该做一个快速调查。

load-testing scaling web-server web-applications threads

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

MariaDB/MySQL 使用大量线程/内存

我一直在设置一个新的 VPS,想试用 MariaDB。我使用的是 MariaDB 10.0.1,据我所知,它相当于 MySQL 5.6。

自 MariaDB/MySQL 5.5 以来,线程的线程处理是否发生了巨大变化?这是我在旧服务器(CentOS 5.9、MySQL 5.5)上看到的:

centos 5.9 上的 mysql 5.5

在 Centos 6.3 和 MariaDB 10 (MySQL 5.6) 上:

centos 6.3 上的 mariadb 10

以下是事实清单:

在服务器 A(CentOS 5.9,MySQL 5.5)上:

  • 大约有 15 个数据库连接到各种网站和服务
  • Plesk 已安装
  • MySQL 进行了最低限度的调整:

/etc/my.cnf

[mysqld]
local-infile=0
query_cache_type = 1
query_cache_size = 32M

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

# Misc vars
key_buffer_size=32M
join_buffer_size=512K
tmp_table_size=32M
max_heap_table_size=32M
thread_cache_size=4
table_cache=300

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# InnoDB vars
innodb_buffer_pool_size=96M
innodb_additional_mem_pool_size=500K
innodb_log_buffer_size=500K
innodb_thread_concurrency=2
Run Code Online (Sandbox Code Playgroud)

在服务器 B(CentOS 6.3,MariaDB 10)上:

  • 有 3 个数据库,其中只有一个当前“正在使用”并连接到一个低流量站点。 …

mysql memory centos threads mariadb

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