I have a situation where an apache web server is trying to locate the IndexDocument for a directory on a gluster volume. This URL is being hit roughly 20 times per second. There is only 1 file in this directory. However, the parent directory does have a large number of items (+123,000 files and dirs) and we are performing operations to move these files into 2 levels of subdirs.
We are seeing very slow response times (around 8 seconds) in apache and also when trying to ls on this dir. Before we started the migrations to move files on the large parent dir into 2 sub levels, we weren’t aware of a problem.
[root@web-02 images]# time ls -l dir1/get/ | wc -l
Other directories with only 1 item return very quickly (<1 sec).
[root@Web-01 images]# time ls -l dir1/tmp1/ | wc -l
I’m just trying to understand what would slow down this operation so much. Is it the high frequency of attempts to read the directory (apache hits to dir1/get/) ? Do the move operations on items in the parent directory have any impact?
[root@web-02 images]# gluster --version
glusterfs 3.7.20 built on Jan 30 2017 15:39:29
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
[root@web-02 images]# gluster vol info
Volume ID: 0d63de20-c9c2-4931-b4a3-6aed5ae28057
Number of Bricks: 1 x 2 = 2
Brick1: web-01:/export/brick1/web_vol1_brick1
Brick2: web-02:/export/brick1/web_vol1_brick1
performance.readdir-ahead: on
performance.cache-size: 512MB
Any insight would be gratefully received.