Linux命令行

为了更好的使用实验室的服务器,特此来进行总结。

后台运行

在当前终端运行一个脚本时,该终端会不占用而无法进行其他工作。比如在训练模型是想要查看GPU的使用情况,或者断开与远程服务器的连接但保持训练的进行。这时我们就需要借助 tmux 这个工具。tmux 是一个终端选择器(terminal multiplexer),它可以让用户在一个终端窗口中控制多个终端。对于连接远程服务器的工作有很大的帮助。

$ tmux                      # create a new terminal session  

在创建了新的 terminal session 之后,窗口会显示新的终端界面。想要退出新的终端界面,则可以在使用 ctrl+b 前缀之后再按 d (表示detached),这样就返回最初的终端。现在可以查看一共创建过多少个 terminal session:

$ tmux ls                   # list all terminal sessions  

键入以上的命令之后就可以看到下面的一段显示。

0: 1 windows (created Mon Apr 2 17:19:35 2018) [100x34]
1: 1 windows (created Mon Apr 2 19:01:14 2018) [100x34]

每一行就是一个 terminal session, 最前面的就是它们的索引。我们可以通过这些索引来进入我们想要的 session。

$ tmux attach -t 0

这样就可以进入上面编号为0的 session 查看程序的执行进度或者执行其他操作。运用 tmux 能够保证进程在断开与服务器连接之后依然正常运行。

GPU使用

nvidia-smi 可以查看GPU使用情况
export CUDA_VISIBLE_DEVICES=0 指定可用的GPU资源,防止占用所有GPU
的显存

远程查看server端的log

tensorboard的log输出的位置。

$ tensorboard –log path_to_log_files

然后在本地的浏览器中输入server的地址再加上port的编号即可。

screen

在SSH远程连接被断开或者关闭的时候,系统里面的下载程序还能继续运行。
解决方法:
1.安装screen
实验室服务器已安装此步跳过。
2 创建screen会话,自定义screen虚拟终端的名称,test可以改为想要的名称

screen -S test

3 查看之前的会话虚拟终端

screen -r test

查看所有screen会话

screen -ls

保存当前的screen会话
按键盘上的ctrl+a,然后再按d

退出screen

exit

删除会话

screen -wipe test

Linux查看物理CPU个数、核数、逻辑CPU个数

查看物理CPU个数

cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l

查看每个物理CPU中core的个数(即核数)

cat /proc/cpuinfo| grep “cpu cores”| uniq

查看逻辑CPU的个数

cat /proc/cpuinfo| grep “processor”| wc -l

查看CPU信息(型号)

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

注,根据之前博客中提到的,/proc目录本身是一个虚拟文件系统,放置的数据都是在内存当中,例如系统核心,进程信息,周边设备的状态及网络状态。这个目录下的数据都在内存当中。

物理cpu个数、核数、逻辑cpu数的概念
物理cpu数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id)。
cpu核数:单块CPU上面能处理数据的芯片组的数量,如双核、四核等。(cpu cores)
逻辑cpu数:一般情况下,逻辑cpu=物理CPU个数×每颗核数,如果不相等的话,则表示服务器的CPU支持超线程技术(HT:简单来说,它可使处理器中的1 颗内核如2 颗内核那样在操作系统中发挥作用。这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑cpu=物理CPU个数×每颗核数x2)