ITPub博客

首页 > 数据库 > Oracle > [20210828]如何实现2.txt

[20210828]如何实现2.txt

原创 Oracle 作者:lfree 时间:2021-09-02 09:13:39 0 删除 编辑

[20210828]如何实现2.txt

--//内核参数kernel.sem的探究,需要写一个命令,看看processes,nsems,semaphores_used_arrays的关系,自己看看如何实现.

$ seq 196 1 204 | xargs -IQ echo "scale=0;Q;a=(Q+4)/4;scale=3;b=Q/(a-4);a;b" | bc | tr -d '\r' | paste - - -
196     50      4.260
197     50      4.282
198     50      4.304
199     50      4.326
200     51      4.255
201     51      4.276
202     51      4.297
203     51      4.319
204     52      4.250

--//以上按照2^2来分组的情况.最后一列输出使用ceil,就是对应semaphores arrays的数量。
--//写的更复杂一些,分析processes=196 ~ 204,分组 2^N (N=1,2,3,4)的情况。

$ seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=2^Q'"
$ seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'scale=0;a=(Z+4)/c;scale=3;b=Z/(a-4);Z;c;a;b;'"

$ paste -d";"  <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=2^Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'scale=0;a=(Z+4)/c;scale=3;b=Z/(a-4);Z;c;a;b;'") | bc | tr -d "\r" | paste - - - -
196     2       100     2.041
197     2       100     2.052
198     2       101     2.041
199     2       101     2.051
200     2       102     2.040
201     2       102     2.051
202     2       103     2.040
203     2       103     2.050
204     2       104     2.040
196     4       50      4.260
197     4       50      4.282
198     4       50      4.304
199     4       50      4.326
200     4       51      4.255
201     4       51      4.276
202     4       51      4.297
203     4       51      4.319
204     4       52      4.250
196     8       25      9.333
197     8       25      9.380
198     8       25      9.428
199     8       25      9.476
200     8       25      9.523
201     8       25      9.571
202     8       25      9.619
203     8       25      9.666
204     8       26      9.272
196     16      12      24.500
197     16      12      24.625
198     16      12      24.750
199     16      12      24.875
200     16      12      25.000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
201     16      12      25.125
202     16      12      25.250
203     16      12      25.375
204     16      13      22.666
--//说明:输出顺序 processes group nsems semaphores_used_arrays.
--//随手写了一个类似的脚本,结果不贴出了。

seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'"
seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'"

paste -d";" <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'")
paste -d";" <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'") | xargs -IY echo 'Ya=(d+4)/2^c;scale=3;b=d/(a-4);d;2^c;a;b;' | bc| tr -d '\r'| paste - - - -

paste -d";" <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'") | xargs -IY echo 'Ya=(d+4)/2^c;scale=3;b=d/(a-4);print d," ",c," ",a," ",b,"\n"' | bc
paste -d";" <(seq 4 | xargs -IQ  bash -c "seq 9 | xargs -iZ echo 'scale=0;c=Q'" ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'") | xargs -IY echo 'Ya=(d+4)/2^c;scale=3;b=d/(a-4);print d,"\t",c,"\t",a,"\t",b,"\n"' | bc

paste -d";" <(seq 4 | sed -n "p;p;p;p;p;p;p;p;p"| xargs -IQ echo 'scale=0;c=Q'  ) <(seq 4 | xargs -IQ  bash -c "seq 196 1 204 | xargs -IZ echo 'd=Z;'") | xargs -IY echo 'Ya=(d+4)/2^c;scale=3;b=d/(a-4);print d,"\t",c,"\t",a,"\t",b,"\n"' | bc

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-2789968/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7970383