我有一台服务器,例如拥有16核心和32G内存。对于像apache这样的进程,每个新连接都会产生一个新线程,那么以下哪种选择更好呢?为什么?
另外,如果是cassandra这样的应用程序,在需要大量写入内存时,在同一台机器上拥有两个“节点”是否有益处?
1. 在同一台机器上运行多个(例如两个)相同应用程序实例,并在两个不同的端口上提供服务。(在此机器前面可能会有一个负载均衡器) 我困惑于操作系统如何处理同一多线程应用的两个实例。这两个进程都将在所有核心上运行吗?在哪些情况下会发生上下文切换(在进程和线程之间),它将如何影响性能?
2. 在一个端口上提供服务的单个多线程应用程序实例。
对于像cassandra这样的应用程序,线程将具有共享内存进行写入,线程之间的上下文切换会在何时发生?
1. 在同一台机器上运行多个(例如两个)相同应用程序实例,并在两个不同的端口上提供服务。(在此机器前面可能会有一个负载均衡器) 我困惑于操作系统如何处理同一多线程应用的两个实例。这两个进程都将在所有核心上运行吗?在哪些情况下会发生上下文切换(在进程和线程之间),它将如何影响性能?
2. 在一个端口上提供服务的单个多线程应用程序实例。
对于像cassandra这样的应用程序,线程将具有共享内存进行写入,线程之间的上下文切换会在何时发生?