concurrency

如何确定我正在使用的 VM 中的 simfs 中的 POSIX 咨询文件锁正在工作?
concurrency

如何确定我正在使用的 VM 中的 simfs 中的 POSIX 咨询文件锁正在工作?

我正在寻找命令行实用程序或其他方法来测试文件锁, 具体来说POSIX 咨询锁(顺便说一下,它们不仅适用于 POSIX)在 Linux 文件系统中。 具体来说,我想确保用于持续集成测试的 Linux/Ubuntu VM 中的 simfs 中的 POSIX 咨询锁定(文件锁定)正常工作。我们遇到过文件损坏问题,只有当 30 个进程同时写入 SQLite DB 文件时才会发生这种情况。这只在一个项目中用于测试,但我们希望帮助追踪问题,以便其他人不会遇到它。 根据 SQLite 团队和文档,仅当文件系统/操作系统中的 POSIX 咨询锁正常工作时,才支持并发写入...

Admin

iSCSI 和 NFS 文件锁定和并发
concurrency

iSCSI 和 NFS 文件锁定和并发

我有一台 Linux 主机,需要挂载位于 NAS 上的数据共享。选择是 NFS v3(​​NAS 限制)和 iSCSI。最初的想法是将 NFS 挂载到文件服务器,为网络的其余部分提供 samba 挂载点,并将 NFS 挂载到备份服务器,该备份服务器显然会备份数据。(这个想法不适用于 iSCSI,我知道您不能/不应该将多个启动器连接到同一个 iSCSI 目标。) 数据服务器 - + - (SMB) - 用户 1 /|-(SMB)-用户(..) (NFS)+-(SMB)-用户(n) 存储区域网络 / \ (网络文件...

Admin

同一分钟有多个 Cron
concurrency

同一分钟有多个 Cron

我正在网络服务器上安装一堆 Magento 商店。每个网站都有一个 cron 作业,Magento 使用它来更新其内容——需要 3-4 秒才能完成。说明告诉将其设置为每 5 分钟运行一次。 我问自己,出于性能原因,是否建议将每个 cron 设置为在不同的分钟运行(例如:第一个网站在第 0、5、10 分钟等运行,第二个网站在第 1、6、11 分钟等运行,依此类推),以减少重叠,或者这是否无用,因为 Linux 按顺序在同一分钟执行多个 cron 作业,避免并发。 ...

Admin

对 Galera 集群进行大量写入 - 表被锁定,集群实际上不可用
concurrency

对 Galera 集群进行大量写入 - 表被锁定,集群实际上不可用

我在 3 个节点上设置了 Galera 集群。它非常适合读取数据。我做了一些简单的应用程序来对集群进行一些测试。不幸的是,当我尝试进行一些写入时,集群完全失败了。也许可以进行不同的配置,或者我做错了什么? 我有一个简单的存储过程: CREATE PROCEDURE testproc(IN p_idWorker INTEGER) BEGIN DECLARE t_id INT DEFAULT -1; DECLARE t_counter INT ; UPDATE test SET idWorker = p_idWorker WHERE count...

Admin

Apache Benchmark 在公共网络上运行速度很慢,但在本地运行速度快很多。我可以采取哪些措施来加快速度?
concurrency

Apache Benchmark 在公共网络上运行速度很慢,但在本地运行速度快很多。我可以采取哪些措施来加快速度?

我正在测试我的 Linode Ubuntu 14 64 位服务器,这是他们提供的最基本的服务器。我正在使用 Apache Benchmark 来测试服务器,以及我用 Python 编写的多线程脚本,但稍后会详细介绍。使用 AB,我注意到当从服务器本身本地运行时,每秒大约有 7k 个请求,但从另一个网络/互联网运行时只有大约 15。在本地,1000 个并发连接的响应时间也约为 150 毫秒。远程 100 个并发连接的响应时间约为 1.5-2.5 秒。我运行远程测试的网络具有足够的带宽,我运行它的计算机具有足够的 RAM 和处理器速度;这是一个快速的商业网络。我...

Admin

GitLab Runner 中并发性的不同、独有的限制
concurrency

GitLab Runner 中并发性的不同、独有的限制

我有一台用作 GitLab 运行器的 Linux 服务器。我希望该服务器可以同时用于两个不同的目的: 对于构建作业、单元测试等(对时间不敏感的事物),可以同时运行许多作业以利用系统的内存可用性并更好地利用 CPU,同时某些作业正在执行 I/O 绑定活动,例如下载依赖项。 当运行时间敏感的作业(性能测试)时,不应运行其他构建作业等,因为如果它们争夺系统资源,则运行之间的测试结果将无法比较。 有没有办法设置 GitLab 运行器config.toml,使得类型的作业1可以同时运行,但保证类型的作业2能够在没有其他作业同时进行的情况下运行? ...

Admin

当向一个主机发出多个请求时会发生什么?
concurrency

当向一个主机发出多个请求时会发生什么?

这是关于计算机机制的一个非常基本的问题。对于每秒处理数百万个请求的应用程序,主机在代码执行阶段处理多个请求的一些常见方式是什么? 例如,假设两个用户单击按钮在网站上预订产品。假设网站需要 20 秒才能将产品预订到数据库中。用户 A 的请求首先到达服务器。但用户 B 不必等到 A 的请求完成,对吗?这是为什么?是什么使得多个请求能够同时处理?服务器是否先处理每个请求的一小部分,然后切换到另一个请求并处理其中的一小部分,等等?服务器是否为每个请求启动一个连续运行的新进程? 我意识到这个问题可能有不同的答案,但是有哪些常见的答案呢? ...

Admin

我如何知道我的服务器可以运行的最大线程数?
concurrency

我如何知道我的服务器可以运行的最大线程数?

以下是机器规格: CPU(s): 20 Thread(s) per core: 1 Core(s) per socket: 10 Socket(s): 2 根据我目前所读到的内容,这些数字意味着我可以运行 20 个并行作业,因为我有 20 个 CPU。 但是,每个 CPU 上可以运行多少个线程? ...

Admin

安全更新存储在 NFSv3 挂载上的配置文件
concurrency

安全更新存储在 NFSv3 挂载上的配置文件

我有一个存储在 NFSv3 网络挂载上的配置文件config_file,我想安全地更新该文件。 以下是我工作的条件和限制: 必须始终config_file为想要阅读的客户提供 客户端绝不能从部分重写的文件中读取损坏的数据 客户确实不是需要config_file立即更新。只要满足限制 #1 和 #2,等待一两分钟让缓存更新是完全没问题的 两端的NFSv3实现都是RHEL(Red Hat Enterprise Linux)。 以下是我目前想到的: 客户端应用程序从 读取/mount/path/config_file,这实际上是一个符号链接/moun...

Admin

UNIX 系统上的 SQLite WAL 并发写入性能
concurrency

UNIX 系统上的 SQLite WAL 并发写入性能

我有两个设置:一个在 Windows 10(ntfs 分区)上运行,另一个在 Debian(ext4 分区)上运行。R 源代码相同。主进程在 8 个 vcore 上启动 8 个子进程(P-SOCKS),它们都查询并写入同一个启用 WAL 的 sqlite 数据库。 在 Windows 10 上,我得到 100% 的 CPU 负载,分布在所有进程上。在 Debian 上,我几乎没有得到 25% 的 CPU 负载。监控 Debian 上的进程,我认为写入是瓶颈,因为我看到只有一个进程在其 vcore 上一次达到 100%。(其他进程可能正在等待写入。) 每个...

Admin

如何允许使用作业共享(-js)并发执行作业数组
concurrency

如何允许使用作业共享(-js)并发执行作业数组

我正在尝试让 SGE 根据 qsub 的作业份额参数并发运行作业阵列任务,但似乎没有按预期工作。有没有办法根据份额启用并发任务执行? 我有一个脚本,它可以休眠来模拟长时间运行的任务,我将它作为不同的作业数组提交给一个小型 SGE 集群(26 个插槽),如下所示: qsub -t 1-201 -js 100 sge_longRunning.sh qsub -t 1-202 -js 101 sge_longRunning.sh qsub -t 1-203 -js 102 sge_longRunning.sh 我希望这些任务能够随着时间的推移几乎均匀地分布...

Admin

AWS codedeploy:并行或并发部署
concurrency

AWS codedeploy:并行或并发部署

我目前正在尝试使用 AWS codedeploy,并注意到只能运行一个部署同时。 我有六个应用程序(在 AWS codedeploy 意义上),每个应用程序都有一个部署组“dev”。当为所有六个应用程序排队部署时,它们都会运行相继即使它们都有自己的部署组并且可以并行运行。 在里面有关 codedeploy 限制的文档其中提到 部署组的最大并发部署数:1 然后我想也许部署组名称是有问题的,因为它总是相同的(dev)。 令我惊讶的是,更改部署组名称并没有解决这个问题,并且当我只有一个部署组时,部署仍然像以前一样接连运行。 我搜索过但未在任...

Admin

服务器中打开描述符的最大数量是否包括其子描述符?
concurrency

服务器中打开描述符的最大数量是否包括其子描述符?

我知道 Linux 限制了打开描述符的最大数量,通常为 1024。 现在假设我需要创建一个服务器,它可以处理超过 1024 个用户,例如 2000 个用户,而无需篡改内核。 这意味着我无法通过为每个客户端保持一个打开的描述符并轮询它们来处理所有用户选择()因为我的内核仅支持 1024 个主机。 但是假设我想创建一个并发服务器并为每个连接的客户端生成一个子进程/线程 1. 子进程是否共享父进程的描述符限制,换句话说,我可以生成 2000 个子进程并分别处理每个客户端吗? 2. 线程是否共享父进程的描述符限制,我可以创建 2000 个线程,每个线程处理一个...

Admin

以下是一些背景信息:
concurrency

以下是一些背景信息:

以下是一些背景信息: 我有两个运行相同应用程序的服务器环境。第一个环境是我打算放弃的,它是一个标准的 Google App Engine 环境,它有很多限制。第二个环境是一个使用 Gunicorn 运行我的 Python 应用程序的 Google Kubernetes 集群。 并发 在第一台服务器上,我可以向应用程序发送多个请求,它会同时响应多个请求。我在两种环境中同时对应用程序运行两批请求。在 Google App Engine 上,第一批和第二批请求同时得到响应,并且第一批请求不会阻止第二批请求。 在 Kubernetes 上,服务器仅同时响应 ...

Admin