lrx182125 发表于 2018-8-2 13:12:26

puppet recurse 导致的性能问题一例

  strace-p 21741 -c
  Process 21741 attached - interrupt to quit
  Process 21741 detached
  % time   secondsusecs/call   calls    errors syscall
  ------ ----------- ----------- --------- --------- ----------------
  95.65    0.040955          87       469         getdents
  4.22    0.001807         0    426525         rt_sigprocmask
  0.07    0.000030         0       235         lstat
  0.06    0.000026         0       235         close
  0.00    0.000000         0       235         open
0.00    0.000000         0       235         lseek  lstat和getdents函数都是用来查看文件属性信息的。
4.查看puppet中module的代码,发现在这个目录下使用了file的资源,并使用了recurse的参数。而由于业务的特殊性,这个目录下面会有大量的文件,这样就导致puppet在判断文件的属性上消耗了大量的时间,进而占用了大量的内存。问题找到了,解决方法也很简单,去掉recurse就好了,里面小文件的属性就交给exec资源去处理吧。
页: [1]
查看完整版本: puppet recurse 导致的性能问题一例