从 bash 管理 Linux 中的 processes/services
Manage processes/services in Linux from bash
我正在为大学做一个小项目来比较 3 个不同的 Linux 发行版和它们的资源命中率,以及它们如何处理流程。我被建议主要使用 bash 而不是 C++ 或 perl,因为教授认为这会导致资源占用较低。
我主要来自 Java 背景,当然熟悉线程。我想知道的是,是否可以为进程分配一定的总内存并为每个进程分配该内存的份额和优先级?我想模拟内存不足的情况,以及当内存不足时需要终止或终止非紧急进程的情况,并将所有这些都作为我的 bash 对话框中的选项之一进行控制。
我知道这在 Java 内都是可能的,因为几个月前我使用生产者消费者示例做了一个项目。是否可以在 Linux 个服务器中执行此操作?我根本不使用 GUI 或桌面版本,因为项目禁止它。
我还想知道我是否可以 运行 与 iostat 同时进行某种压力测试,并比较它如何处理压力和非压力结果。 bash内也可以控制这个吗?
bash 使您能够自动执行任何您可以从命令行执行的操作,您可以在命令行中访问分配内存、检查内存使用情况等所需的所有工具……所以是的使用 bash - 除了使用高级语言时,它们只是通过它们自己的库调用相同的底层 OS 托管数据结构......您可能会惊喜地发现命令行实用程序的强大程度。 .. 考虑使用 bash 作为快速原型设计方法,如果您发现需要复杂的数据处理,则可能需要在需要时调用简单的 C 二进制文件
.. 这是 gnuplot 简介的快速介绍
how to plot data from a file containing one vertical column of numbers :
from command line :
gnuplot
then at gnuplot> prompt : plot "some-file-with-single-vertical-column"
to plot 3D data - IE. frequency + offset + difference :
To view tsv files (3 columns : freq offset difference) use
terminal :
gnuplot
splot 'freq_offset_diff_20130711_211554_pass_01.tsv' using 1:2:3 with points palette pointsize 3 pointtype 7
我想您正在寻找的是 cgroups。您可以为整个 cgroup 进程组设置以字节为单位的最大内存。
另一个简单的方法是让一个新用户把所有的进程都suid给这个用户,然后给这个用户设置一个ulimit
luser hard as ?
在limits.conf
里面
我正在为大学做一个小项目来比较 3 个不同的 Linux 发行版和它们的资源命中率,以及它们如何处理流程。我被建议主要使用 bash 而不是 C++ 或 perl,因为教授认为这会导致资源占用较低。
我主要来自 Java 背景,当然熟悉线程。我想知道的是,是否可以为进程分配一定的总内存并为每个进程分配该内存的份额和优先级?我想模拟内存不足的情况,以及当内存不足时需要终止或终止非紧急进程的情况,并将所有这些都作为我的 bash 对话框中的选项之一进行控制。 我知道这在 Java 内都是可能的,因为几个月前我使用生产者消费者示例做了一个项目。是否可以在 Linux 个服务器中执行此操作?我根本不使用 GUI 或桌面版本,因为项目禁止它。
我还想知道我是否可以 运行 与 iostat 同时进行某种压力测试,并比较它如何处理压力和非压力结果。 bash内也可以控制这个吗?
bash 使您能够自动执行任何您可以从命令行执行的操作,您可以在命令行中访问分配内存、检查内存使用情况等所需的所有工具……所以是的使用 bash - 除了使用高级语言时,它们只是通过它们自己的库调用相同的底层 OS 托管数据结构......您可能会惊喜地发现命令行实用程序的强大程度。 .. 考虑使用 bash 作为快速原型设计方法,如果您发现需要复杂的数据处理,则可能需要在需要时调用简单的 C 二进制文件
.. 这是 gnuplot 简介的快速介绍
how to plot data from a file containing one vertical column of numbers :
from command line :
gnuplot
then at gnuplot> prompt : plot "some-file-with-single-vertical-column"
to plot 3D data - IE. frequency + offset + difference :
To view tsv files (3 columns : freq offset difference) use
terminal :
gnuplot
splot 'freq_offset_diff_20130711_211554_pass_01.tsv' using 1:2:3 with points palette pointsize 3 pointtype 7
我想您正在寻找的是 cgroups。您可以为整个 cgroup 进程组设置以字节为单位的最大内存。
另一个简单的方法是让一个新用户把所有的进程都suid给这个用户,然后给这个用户设置一个ulimit
luser hard as ?
在limits.conf
里面