Swa*_*air 5 multithreading operating-system multiprocessing cassandra
我有一台 16 核和 32G 内存的服务器。对于像 那样的进程apache,它为每个新连接产生一个新线程,以下哪个替代方案更好,为什么?在应用程序的情况下也会发生什么cassandra。如果 cassandra 有大量的内存写入,这意味着在同一台机器上有两个“节点”会有什么好处?
同一应用程序的多个(例如,两个)实例在同一台机器上运行并在两个不同的端口上提供服务。(可能是本机前面不同机器上的LB)。
我很困惑操作系统将如何处理多线程应用程序的两个实例。这两个进程都会在所有内核上运行线程吗?在什么情况下会发生上下文切换(在进程和线程之间)以及它将如何影响性能?
在一个端口上服务的多线程应用程序的单个实例。
对于像 cassandra 这样的应用程序,其中线程将拥有共享内存以供写入,线程之间何时会发生上下文切换?
在同一台机器上运行的同一应用程序的多个实例需要进程间同步。如果进程间同步量较低,则此方法可能会很有用。另外,如果您的应用程序本身是多线程的,那么您只需要一个进程。如果您的应用程序是单线程的,那么您可能需要运行多个实例(例如每个 CPU 一个进程)以利用硬件资源。
如果您的进程受 IO 限制,则吞吐量不受 CPU 限制,并且一个线程可以处理所有 IO 请求。
对于像 cassandra 这样的应用程序,线程将拥有要写入的共享内存,那么线程之间何时会发生上下文切换?
当两个或多个线程尝试同步它们对共享内存的写入时,就会发生上下文切换。
| 归档时间: |
|
| 查看次数: |
6884 次 |
| 最近记录: |