我有一个由多用户环境中用 python 编写的不同工具组成的框架。
我第一次登录系统并启动一个命令需要 6 秒才能显示几行帮助。如果我立即再次发出相同的命令,则需要 0.1 秒。几分钟后,它又回到了 6 秒。(短期缓存的证明)
该系统位于 GPFS 上,因此磁盘吞吐量应该没问题,但由于系统中的文件数量可能会导致访问量较低。
strace -e open python tool | wc -l
显示启动该工具时正在访问的 2154 个文件。
strace -e open python tool | grep ENOENT | wc -l
显示正在寻找 1945 个丢失的文件。(你问我一个非常糟糕的命中/未命中率:-)
我有一种预感,加载工具所涉及的过多时间被查询 GPFS 关于所有这些文件所消耗,并且这些文件被缓存以供下一次调用(在系统或 GPFS 级别),尽管我不知道如何测试/证明给我看。我没有系统的 root 访问权限,只能写入 GPFS 和 /tmp。
有可能改善这一点python quest for missing files
吗?
关于如何以简单的方式进行测试的任何想法?(在 /tmp 上重新安装所有内容并不简单,因为涉及到许多软件包,virtualenv 也无济于事(我认为),因为它只是链接 gpfs 系统上的文件)。
一个选项当然是拥有一个分叉的守护进程,但这远非“简单”,而是最后的解决方案。
谢谢阅读。