用机器生成的音乐监控Linux 计算机4
2011-11-26 14:32
218 查看
运行 chordStats
chordStats 程序将读取标准的 vmstat 程序,并在不缓冲的情况下把通知事件写入 FluidSynth 的 stdin。用命令 perl chordStats.pl |fluidsynth Hammered_Instruments.sf2 -c10000 -z10000 >/dev/null 启动 chordStats 程序。请记住,-c 和 -z 参数适用于扩大声音缓冲选项,而且可能需要进一步调整才能用于特殊的系统。
现在 chordStats 程序已经运行,尝试启动 Mozilla。首先要注意的是用管钟和钢片琴表示的 CPU 使用量的增加和磁盘 I/O 活动。如果用 wget 在 Mozilla 中装入一个较大的页面或下载文件,您将听到电子钢琴在网络链接饱和时发出更加刺耳的音调。
修改 chordStats
除了基本的系统负载之外,可以轻松地修改 chordStats 来表示计算环境的各个方面。回想 vmstat 1 将在每秒钟生成一张值列表。这可用于提供通知值,以及创建基本的节拍命令。修改 chordStats 的一种简单方法是将 vmstat 命令替换为刷新速度更快的事件生成器。例如,代码发行版归档附带的 fastUpdate.pl 程序将每五分之一秒扫描一次可用内存、当前进程和以太网中断。要使用最新更新的版本,请修改 chordStats.pl 程序以包含以下更改。
把命令从:
my $vmStatCmd = "vmstat 1";
更改为:
my $vmStatCmd = "./fastUpdate.pl 0.2 "
并把标题描述区域从:
for( split " ", "r b swpd free buff cache si so bi bo in cs us sy id wa" ){
更改为:
for( split " ", "memFree ethInt proc" ){
在主程序循环中,代码无需忽略标题行和输入的前两行。您可以根据需要移除这些条件。fastUpdate.pl 脚本的输出已被调整为范围在 0 到 100 之间,因此把 sendNote 事件从:
# user cpu usage
$note = $currLine[ $fields{us} ];
sendNote( $note, 14, 12, 96 );
# conglomerate disk i/o fields to one stat
$note = $currLine[ $fields{bi} ] + $currLine[ $fields{bo} ];
if( $note > 1000 ){ $note = 1000; }
$note = $note/10;
sendNote( $note, 8, 12, 96 );
# network throughput on eth0
$note = getNetworkStats();
sendNote( $note, 5, 12, 84 );
更改为:
$note = $currLine[ $fields{memFree} ];
sendNote( $note, 14, 48, 96 );
$note = $currLine[ $fields{ethInt} ];
sendNote( $note, 8, 48, 96 );
$note = $currLine[ $fields{proc} ];
sendNote( $note, 5, 48, 96 );
请注意,此修正版中将最小值增加到了 48。这是对选定的 SoundFont (Electronic_Sounds.sf2) 的特性的补偿。用命令 perl chordStats.pl |fluidsynth Electronic_Sounds.sf2 -c10000 -z10000 >/dev/null 来运行此更新版本的 chordStats,并且您将听到扬声器发射出的优美的 1960s sci-fi/B-movie 声道。
结束语
通过本示例,可以修改 chordStats 来根据所选的任何参数来播放音乐。修改 fastUpdate 以读取 strace 或 gprof 输出,比较构建过程日志文件并监视错误,或将多台计算机和网络设备的性能统计信息组合为通知流。
如果还有兴趣,请尝试根据附加数据修改音量参数。例如,如果信息包的数目保持不变,但中断次数不断增加,则需要增加网络通知的音量以强调对这方面的注意力。尝试移入三度音阶而不是整个八度音阶,或在检测到值发生较大变化时插入一个休止符以强调随后的阶段。
chordStats 程序将读取标准的 vmstat 程序,并在不缓冲的情况下把通知事件写入 FluidSynth 的 stdin。用命令 perl chordStats.pl |fluidsynth Hammered_Instruments.sf2 -c10000 -z10000 >/dev/null 启动 chordStats 程序。请记住,-c 和 -z 参数适用于扩大声音缓冲选项,而且可能需要进一步调整才能用于特殊的系统。
现在 chordStats 程序已经运行,尝试启动 Mozilla。首先要注意的是用管钟和钢片琴表示的 CPU 使用量的增加和磁盘 I/O 活动。如果用 wget 在 Mozilla 中装入一个较大的页面或下载文件,您将听到电子钢琴在网络链接饱和时发出更加刺耳的音调。
修改 chordStats
除了基本的系统负载之外,可以轻松地修改 chordStats 来表示计算环境的各个方面。回想 vmstat 1 将在每秒钟生成一张值列表。这可用于提供通知值,以及创建基本的节拍命令。修改 chordStats 的一种简单方法是将 vmstat 命令替换为刷新速度更快的事件生成器。例如,代码发行版归档附带的 fastUpdate.pl 程序将每五分之一秒扫描一次可用内存、当前进程和以太网中断。要使用最新更新的版本,请修改 chordStats.pl 程序以包含以下更改。
把命令从:
my $vmStatCmd = "vmstat 1";
更改为:
my $vmStatCmd = "./fastUpdate.pl 0.2 "
并把标题描述区域从:
for( split " ", "r b swpd free buff cache si so bi bo in cs us sy id wa" ){
更改为:
for( split " ", "memFree ethInt proc" ){
在主程序循环中,代码无需忽略标题行和输入的前两行。您可以根据需要移除这些条件。fastUpdate.pl 脚本的输出已被调整为范围在 0 到 100 之间,因此把 sendNote 事件从:
# user cpu usage
$note = $currLine[ $fields{us} ];
sendNote( $note, 14, 12, 96 );
# conglomerate disk i/o fields to one stat
$note = $currLine[ $fields{bi} ] + $currLine[ $fields{bo} ];
if( $note > 1000 ){ $note = 1000; }
$note = $note/10;
sendNote( $note, 8, 12, 96 );
# network throughput on eth0
$note = getNetworkStats();
sendNote( $note, 5, 12, 84 );
更改为:
$note = $currLine[ $fields{memFree} ];
sendNote( $note, 14, 48, 96 );
$note = $currLine[ $fields{ethInt} ];
sendNote( $note, 8, 48, 96 );
$note = $currLine[ $fields{proc} ];
sendNote( $note, 5, 48, 96 );
请注意,此修正版中将最小值增加到了 48。这是对选定的 SoundFont (Electronic_Sounds.sf2) 的特性的补偿。用命令 perl chordStats.pl |fluidsynth Electronic_Sounds.sf2 -c10000 -z10000 >/dev/null 来运行此更新版本的 chordStats,并且您将听到扬声器发射出的优美的 1960s sci-fi/B-movie 声道。
结束语
通过本示例,可以修改 chordStats 来根据所选的任何参数来播放音乐。修改 fastUpdate 以读取 strace 或 gprof 输出,比较构建过程日志文件并监视错误,或将多台计算机和网络设备的性能统计信息组合为通知流。
如果还有兴趣,请尝试根据附加数据修改音量参数。例如,如果信息包的数目保持不变,但中断次数不断增加,则需要增加网络通知的音量以强调对这方面的注意力。尝试移入三度音阶而不是整个八度音阶,或在检测到值发生较大变化时插入一个休止符以强调随后的阶段。
相关文章推荐
- 用机器生成的音乐监控Linux 计算机1
- 用机器生成的音乐监控Linux 计算机2
- 用机器生成的音乐监控Linux 计算机3
- Linux环境自动生成OGG监控脚本和snmp oids
- linux下性能监控工具Nmon的使用以及通过nmon_analyse生成分析报表
- linux性能监控分析及通过nmon_analyse生成分析报表
- linux生成ssh key方法与使用,无密码登录机器
- 我是个LINUX新手,现在急需为公司做"MRTG"的网络监控,要在一台机器上监控多台服务器
- 克隆Linux虚拟机,Linux机器SSH互联,Linux机器生成密钥与设置
- cacti监控远程linux机器配置(被监控端)
- 监控linux系统某文件的生成,并进行另一个脚本
- 监控linux机器负载脚本
- SCOM 如何监控生产环境中的Linux&Unix机器 推荐
- linux 根据 access.log 生成压力测试脚本 监控Mysql JAVA 系统状态
- linux下生成core dump文件方法及设置
- Linux系统内对高CPU的监控及日志分析
- linux Centos VPS中安装snmp用监控宝监测的详细方法[转]
- Linux的IO性能监控工具iostat详解
- 学计算机的,为什么要用linux?
- Linux下静态库_库的基本概念;如何生成静态库动态库;nm查看库中包含那些函数、ar生成静态库,查看库中包含那些.o文件、ldd查看程序依赖的.so文件;gcc/g++与库相关的参数-L,-l,-f