Skip to content

Commit

Permalink
Add new service "file_tracker"
Browse files Browse the repository at this point in the history
This new service periodically tracks the file open in the system.

Closes-Bug: #1995502
Change-Id: I02e097fef07655ff571af9f35bf258b2ed975098
  • Loading branch information
ralonsoh committed Nov 7, 2022
1 parent 1f5d6c0 commit d1c2bf5
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .zuul.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,7 @@
dstat: false
etcd3: true
memory_tracker: true
file_tracker: true
mysql: true
rabbit: true
group-vars:
Expand All @@ -477,6 +478,7 @@
# Shared services
dstat: false
memory_tracker: true
file_tracker: true
devstack_localrc:
# Multinode specific settings
HOST_IP: "{{ hostvars[inventory_hostname]['nodepool']['private_ipv4'] }}"
Expand Down Expand Up @@ -544,6 +546,7 @@
dstat: false
etcd3: true
memory_tracker: true
file_tracker: true
mysql: true
rabbit: true
tls-proxy: true
Expand Down Expand Up @@ -593,6 +596,7 @@
# Shared services
dstat: false
memory_tracker: true
file_tracker: true
tls-proxy: true
# Nova services
n-cpu: true
Expand Down
6 changes: 6 additions & 0 deletions doc/source/debugging.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ provides consumption output when available memory is seen to be
falling (i.e. processes are consuming memory). It also provides
output showing locked (unswappable) memory.

file_tracker
------------

The ``file_tracker`` service periodically monitors the number of
open files in the system.

tcpdump
-------

Expand Down
6 changes: 6 additions & 0 deletions lib/dstat
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,18 @@ function start_dstat {
if is_service_enabled peakmem_tracker; then
die $LINENO "The peakmem_tracker service has been removed, use memory_tracker instead"
fi

# To enable file_tracker add:
# enable_service file_tracker
# to your localrc
run_process file_tracker "$TOP_DIR/tools/file_tracker.sh"
}

# stop_dstat() stop dstat process
function stop_dstat {
stop_process dstat
stop_process memory_tracker
stop_process file_tracker
}

# Restore xtrace
Expand Down
47 changes: 47 additions & 0 deletions tools/file_tracker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/bin/bash
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.

set -o errexit

# time to sleep between checks
SLEEP_TIME=20

function tracker {
echo "Number of open files | Number of open files not in use | Maximum number of files allowed to be opened"
while true; do
cat /proc/sys/fs/file-nr
sleep $SLEEP_TIME
done
}

function usage {
echo "Usage: $0 [-x] [-s N]" 1>&2
exit 1
}

while getopts ":s:x" opt; do
case $opt in
s)
SLEEP_TIME=$OPTARG
;;
x)
set -o xtrace
;;
*)
usage
;;
esac
done

tracker

0 comments on commit d1c2bf5

Please sign in to comment.