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)