我正在尝试在 Cray 超级计算机上以集群模式运行 ArangoDB。 它在登录节点上运行。 我按照以下说明进行操作: https://docs.arangodb.com/3.11/deploy/deployment/single-instance/
为了正确使用 Cray 集群,我需要将其作为批处理作业(Slurm / sbatch)提交。 我在运行它时遇到问题,因为“arangod”变得沉默,也就是说它的命令行输出不会最终出现在 slurm-log-file 中。
我尝试使用此链接更改日志设置: https://docs.arangodb.com/3.11/components/arangodb-server/options/#--loglevel 如果我将日志记录设置为“信息”,那么我什么也得不到。如果我像这样使用“trace”:
build/bin/arangod --server.endpoint tcp://0.0.0.0:5003 --agency.my-address tcp://148.187.32.9:5001 --server.authentication false --agency.activate true --agency.size 3 --agency.supervision true --database.directory db_dir/agency_2 --log.level startup=trace --log.level agency=trace --log.level queries=trace --log.level replication=trace --log.level threads=trace
我得到了一些东西,但它没有打印我感兴趣的任何行,即它是否创建了数据库目录,是否以八卦模式结束等等。如果我只是从终端运行它,我不会在控制台中得到一行预期的输出。
正如我所说:在登录节点上一切正常。我怀疑问题可能出在 Slurm 和 arangod 的交互上。
你能帮我吗?
*** 编辑***
我做了一个小实验。首先我运行了这个(预计会出现错误消息):
#!/bin/bash -l
#SBATCH --job-name=slurm_test
#SBATCH --time=00:30:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-core=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --partition=debug
#SBATCH --constraint=mc
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
srun build/bin/arangod --server.endpoint tcp://0.0.0.0:5001
得到了这个(来自 arangodb 的第一行,我们所期望的): slurm-....out:
no database path has been supplied, giving up, please use the '--database.directory' option
srun: error: nid00008: task 0: Exited with exit code 1
srun: Terminating job step 8106415.0
Batch Job Summary Report for Job "slurm_test" (8106415) on daint
-----------------------------------------------------------------------------------------------------
Submit Eligible Start End Elapsed Timelimit
------------------- ------------------- ------------------- ------------------- ---------- ----------
2018-06-20T22:41:54 2018-06-20T22:41:54 Unknown Unknown 00:00:00 00:30:00
-----------------------------------------------------------------------------------------------------
Username Account Partition NNodes Energy
---------- ---------- ---------- ------ --------------
peterem g34 debug 1 joules
This job did not utilize any GPUs
----------------------------------------------------------
Scratch File System Files Quota
-------------------- ---------- ----------
/scratch/snx3000 85020 1000000
然后我运行了这个:
#!/bin/bash -l
#SBATCH --job-name=slurm_test
#SBATCH --time=00:30:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-core=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --partition=debug
#SBATCH --constraint=mc
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
srun build/bin/arangod --server.endpoint tcp://0.0.0.0:5001 --agency.my-address tcp://127.0.0.1:5001 --server.authentication false --agency.activate true --agency.size 1 --agency.supervision true --database.directory agency1
这创建了“agency1”目录,但未完成(运行了超过 3 分钟)。所以几分钟后我“扫描”了这项工作。这是唯一的输出(slurm-....out:):
srun: got SIGCONT
slurmstepd: error: *** STEP 8106340.0 ON nid00008 CANCELLED AT 2018-06-20T22:38:03 ***
slurmstepd: error: *** JOB 8106340 ON nid00008 CANCELLED AT 2018-06-20T22:38:03 ***
srun: forcing job termination
srun: Job step aborted: Waiting up to 32 seconds for job step to finish.
Batch Job Summary Report for Job "slurm_test" (8106340) on daint
-----------------------------------------------------------------------------------------------------
Submit Eligible Start End Elapsed Timelimit
------------------- ------------------- ------------------- ------------------- ---------- ----------
2018-06-20T22:32:15 2018-06-20T22:32:15 Unknown Unknown 00:00:00 00:30:00
-----------------------------------------------------------------------------------------------------
Username Account Partition NNodes Energy
---------- ---------- ---------- ------ --------------
peterem g34 debug 1 joules
This job did not utilize any GPUs
----------------------------------------------------------
Scratch File System Files Quota
-------------------- ---------- ----------
/scratch/snx3000 85020 1000000
所以:我知道它在两种情况下都在运行(提供输出或 crates 文件夹)。但我不知道为什么在第二种情况下它没有输出。
我希望这能澄清我的问题。
谢谢,伊曼纽尔
您可以打印整个
slurm
作业命令/作业文件吗? arangod
登录到 stdout
。当 stdout
重定向到输出文件时(集群批处理系统默认执行此操作),您应该监视该文件。据我记得 slurm 默认写入 slurm-$jobid.out