由于 google chrome/chromium 产生多个进程,因此很难看到这些进程总共使用了多少内存。
有没有一种简单的方法可以查看一系列连接的进程使用了多少总内存?
尝试使用8 个线程运行程序 X ,它在n 分钟内结束。
尝试使用50 个线程运行相同的程序,并在n*10 分钟内结束。
为什么会发生这种情况以及如何获得可以使用的最佳线程数?
据我了解,Linux 上 pthread 的默认堆栈大小是 16K。我在 64 位 Ubuntu 安装上得到了奇怪的结果。
$ ulimit -s
8192
Run Code Online (Sandbox Code Playgroud)
还:
pthread_attr_init(&attr);
pthread_attr_getstacksize(&attr, &stacksize);
printf("Thread stack size = %d bytes \n", stacksize);
Prints
Thread stack size = 8388608 bytes
Run Code Online (Sandbox Code Playgroud)
我很确定堆栈大小不是“8388608”。可能有什么问题?
如果 Unix (Posix) 进程接收到信号,信号处理程序将运行。
在多线程进程中它会发生什么?哪个线程接收信号?
在我看来,信号 API 应该被扩展来处理(即信号处理程序的线程应该能够被确定),但是在网上寻找信息我只在 linux 内核邮件列表和上发现了长达一年的火焰不同的论坛。据我了解,Linus 的概念不同于 Posix 标准,首先构建了一些兼容层,但现在 Linux 遵循 posix 模型。
目前的状态是什么?
我有一个 100 M 行的文件,它适合 GNU/Linux 系统上的 RAM。
这是相当慢的:
sort bigfile > bigfile.sorted
Run Code Online (Sandbox Code Playgroud)
并且没有在我的机器上使用所有 48 个内核。
如何快速对该文件进行排序?
$ ps -e -T | grep myp | grep -v grep
797 797 ? 00:00:00 myp
797 798 ? 00:00:00 myp
797 799 ? 00:00:00 myp
797 800 ? 00:00:00 myp
Run Code Online (Sandbox Code Playgroud)
这显示了mypPID = 797的进程和具有不同 SPID 的四个线程。
如何在不杀死整个进程的情况下杀死进程的特定线程。我知道在某些情况下,当对该特定线程存在致命依赖时,这可能根本不可能。但是,在任何情况下都可能吗?是的,如何?
我试过kill 799了,过程本身就终止了。现在我不确定这是因为有依赖项在myp没有进程的情况下导致失败,800或者因为 kill 很简单,无法杀死单个进程。
我有一个命令行脚本,它执行 API 调用并用结果更新数据库。
我有 API 提供者每秒 5 个 API 调用的限制。该脚本的执行时间超过 0.2 秒。
是否有办法编排线程,以便我的命令行脚本每秒执行 5 次?
例如,可以使用 5 或 10 个线程运行的东西,如果前一个线程在不到 200 毫秒前执行了脚本,则没有线程会执行该脚本。
在常见的Linux发行版,做事业一样rm,mv,ls,grep,wc,等在平行于它们的参数运行?
换句话说,如果我grep在 32 线程 CPU 上处理一个大文件,它会比在双核 CPU 上运行得更快吗?
cpLinux 上有多线程命令吗?
我知道如何在 Windows 上执行此操作,但我不知道如何在 Linux 环境中执行此操作。
您可以看到lscpu命令的输出-
jack@042:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 56
On-line CPU(s) list: 0-55
Thread(s) per core: 2
Core(s) per socket: 14
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 79
Model name: Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
Stepping: 1
CPU MHz: 2600.000
CPU max MHz: 2600.0000
CPU min MHz: 1200.0000
BogoMIPS: 5201.37
Virtualization: VT-x
Hypervisor vendor: vertical
Virtualization type: full
L1d cache: 32K
L1i cache: 32K …Run Code Online (Sandbox Code Playgroud)