NDS (Network Data Server)

The NDS2 Server runs on megatron. It reads the 40m frames and serves them up through nds40.ligo.caltech.edu at port 31200

How to Install the NDS2 client

Its best to do this in python, within a anaconda environment dedicated to this purpose.

e.g.

conda env create --name LIGO

conda activate LIGO

conda install numpy scipy matplotlib pandas astropy jupyterlab nodejs

conda install -c conda-forge python-nds2-client

Example jupyter notebook to get 40m data:

plotSeismicData.ipynb

How to debug the NDS2 Server on Megatron

The NDS2 process is handled by the user nds2mgr, so don't try debuggin as controls.

~>sudo su nds2mgr
nds2mgr@megatron:/home/controls$ cd
nds2mgr@megatron:~$ cd nds2-megatron/
nds2mgr@megatron:~/nds2-megatron$ make -f test_restart
make: 'restart_stamp' is up to date.
nds2mgr@megatron:~/nds2-megatron$ rm restart_stamp
nds2mgr@megatron:~/nds2-megatron$ make -f test_restart
echo "about to restart"
about to restart
sudo /etc/init.d/nds2 restart
Shutting down nds2:
Starting nds2: /usr/bin/nds2 already running.

This seems to be weird, in that the restart is ambiguous. Recently, I have been doing:

sudo /etc/init.d/nds2 stop
sleep 20
sudo /etc/init.d/nds2 start

which behaves with more rational error messages and usually works.

Sometimes, if people have been hammering the server or if there's another kind of hangup, you may run htop and see that one nds2 thread is using up near 100% of a CPU. Then its time to kill it with seriousness:

sudo pkill -9 nds2

and then rerun the 'make -f test_restart' as usual

Here is another restart procedure updated on June 13, 2024.

How_To/NDS (last edited 2024-06-13 19:05:02 by DhatriraghunathanATligoDOTorg)