Linux BoostUp

Common Product Tool

GPU-Burn

  • GPU压力测试。

Tmux

  • Linux终端,一个好处是只需要开一个终端window就可以通过tmux开很多个pane这样,通过tab切换不同的应用程序,使用pane在一个窗口内切换不同的pane。
  • tmux可以在后台运行,即使关闭终端window,后台的程序也不会断开。

安装方法

1
sudo apt-get install -y tmux

使用

1
2
3
4
5
6
7
8
# 新建一个后台终端
tmux new -t "session name"
# 附加在现存的终端上
tmux attach -t "session name"
# 列出所有的session
tmux ls
# 关闭session
tmux kill-session -t "session name"

其他快捷键

key what it does
ctrl-b, % split the screen in half from left to right
ctrl-b, " split the screen in half from top to bottom
ctrl-b, x kill the current pane
ctrl-b, 上下键 switch to the pane in whichever direction you press
ctrl-b, d detach from tmux, leaving everything running in the background
ctrl-b(按住), 方向键 adjust the size of the pane
ctrl-b,[ make the mouse scrolling enable

其他更多快捷键,参见github-tmux-cheatsheet

一些小问题

1
2
ServerAliveInterval 60
ServerAliveCountMax 3

正确的解决方案应该是,由于服务器采用本地集群的方式开放了一个公网端口,使用ssh连接非常容易出现断联的情况,因此应该使用tmux构建进程,使得进程在服务器本地运行,使得进程和本地窗口解除绑定,这样运行的程序就是在远端的本地进行的。

TOP

显示了系统总体的 CPU 和内存使用情况,以及各个进程的资源使用情况。详情见这里

不需要安装,默认Ubuntu自带。常见缩写, 涉及Linux cpu负载相关知识

Idle: 处于空闲状态,没有任务需要调度。

id:空闲状态的时间占比。

avg:??

sy:内核态代码的运行时间比,sy高说明内核占用太多资源,或者用户进程发起了太多的系统调用。

ni:niceness不为0的进程代码运行时间比,默认情况下,进程的niceness值都为0,但可以通过命令nice来启动一个进程并指定其niceness值,niceness的取值范围是-20到19,值越小,表示优先级越高,越优先被内核调度。

hi&si:这两个值反映了CPU有多少时间花在了中断处理上,hi(hardware interrupts)是硬件中断,si(softirqs)是软件中断。硬件中断一般由I/O设备引起,如网卡、磁盘等,发生硬件中断后,CPU需要立即处理,当硬件中断中需要处理的事情很多时,内核会生成相应的软中断,然后将耗时且不需要立即处理完成的操作放在软中断中执行,比如当网卡收到网络包时,需要CPU立即把数据拷贝到内存中去,因为网卡自带的缓存较小,如果不及时处理的话后面的数据包就进不来,导致丢包,当数据拷贝到内存中之后,就不需要那么着急的处理了,这时候可以将处理数据包(协议栈)的代码放在软中断中执行。

wa:处于I/O等待状态的时间占比。通常情况下,当CPU遇到一个I/O操作时,会先触发I/O操作,然后去干别的,等I/O操作完成后,CPU再接着继续工作,但如果这时系统比较空闲,CPU没有别的事情可以做,那么CPU将处于等待状态,这种处于等待状态的时间将会被统计进I/O wait,也就是说CPU处于I/O wait状态即CPU闲着没事干在等I/O操作结束,和idle几乎是一样的。这个值高说明CPU闲且I/O操作多或者I/O操作慢,但低并不能说明没有I/O操作或者I/O操作快,有可能是CPU在忙别的,所以这只是一个参考值,需要和其他的统计项一起来分析。

使用

1
top

Htop

  • 相比tophtop可以看到更加丰富的CPU信息。

安装方法

1
sudo apt-get install htop

使用

1
htop

示例图如下所示:

其他快捷键

  • 通过F2可以实现进阶操作,比如修改配色,在F2之后的color界面,通过鼠标或者键盘上下键可以切换颜色,比如Broken gray就比默认颜色更好一些。

  • ESC可以退出编辑。在htop界面都有写。

  • 查看硬盘IO,htop同样可以参考这里可以实现。(本身top是可以的,此外有iotop这样的软件可以用)。

    • F2->Setup->Display Option,点击空格选中“Detailed CPU time”;

    • 选择Setup->Meters,使用右箭头和上下箭头键,选中Available meters->CPU average计数器,添加到Right column;

    • 在Right column中添加后,用上下箭头、回车调整位置,然后按空格,修改计数器类型为CPU(Text)。

之后在htop中就会出现如下所示的栏,表示硬盘io率。

image-20231009151319057
  • 设置完之后还需要保存设置,才能在下一次打开htop时保持和之前一样的设置。但是我设置F10没有用。

Ubuntu20.04自带的System Monitor

  • 其实自带的就很好用,那些花里胡哨的反而比较麻烦。可以看系统,进程,和文件系统。

lm-sensors

  • 用于查看风扇温度, 比如新装了电脑如果CPU支持超频,那么打开CPU超频的话就会导致水冷风扇转速和降温效果达到最高,甚至有点异响。或者用于检查其他硬件是否有问题。

安装方法

1
sudo apt-get install lm-sensors

使用

1
sensors

就会得到如下的显示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
coretemp-isa-0000 # CPU内核温度
Adapter: ISA adapter
Package id 0: +47.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +32.0°C (high = +100.0°C, crit = +100.0°C)
Core 1: +33.0°C (high = +100.0°C, crit = +100.0°C)
Core 2: +33.0°C (high = +100.0°C, crit = +100.0°C)
Core 3: +35.0°C (high = +100.0°C, crit = +100.0°C)
Core 4: +31.0°C (high = +100.0°C, crit = +100.0°C)
Core 5: +47.0°C (high = +100.0°C, crit = +100.0°C)
Core 6: +34.0°C (high = +100.0°C, crit = +100.0°C)
Core 7: +33.0°C (high = +100.0°C, crit = +100.0°C)

acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°C (crit = +105.0°C)

iwlwifi_1-virtual-0 #Intel WiFi温度数据
Adapter: Virtual device
temp1: +40.0°C

nvme-pci-0500 # GPU温度
Adapter: PCI adapter
Composite: +41.9°C (low = -273.1°C, high = +81.8°C)
(crit = +84.8°C)
Sensor 1: +41.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +47.9°C (low = -273.1°C, high = +65261.8°C)

Filezilla

  • 往已知IP的远程服务器上传输大量的数据。

安装方法

1
sudo apt-get install filezilla

使用方法

1
filezilla
  • 可以调整文件传输并行线程数。
  • 不同平台的文件编码方式差异导致文件传输之后无法识别的问题。
    • 文本文件中出现很多空行,解决方案:传输的文件类型需要按照二进制的方式进行传输
    • sh文件无法识别,解决方案sed -i "s/\r//" *.sh

Putty

VSCode服务器连接

在本地雞上使用ssh -L 10008:127.0.0.1:10008 root@IP將服務器的端口映射到本地,(windows不需要这一步就可以做到,直接vscode连接了之后就行)

在服務器上使用tensorboard --logdir='/root/lyh/code/AE-CrossModal/log/checkpoints/May17_11_25_14_spherical' --port=10008打開tensorboard。

這樣本地才能通過瀏覽器http://localhost:10008看到。

fuser

Git

出现代码没有修改,但是git diff提示很多改动。如下:

1
2
old mode 100755  
new mode 100644

解决方案

1
git config core.filemode false

git推送代码时出现问题,fatal: CRLF would be replaced by LF in:

解决方案:

1
2
git config --global core.autocrlf false
git config --global core.safecrlf false

pip库安装

1
pip cache remove *
1
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
1
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
1
ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
1
libX11.so.6: cannot open shared object file: No such file or directory
1
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions
1
RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR
1
RuntimeError: Ninja is required to load C++ extensions
1
libcudart.so.12: cannot open shared object file: No such file or directory

title:Linux BoostUp

author:AmazingHao

link:http://whu-lyh.github.io/blogs/2023/09/25/Linux-BoostUp/

publish time:2023-09-25

update time:2024-10-11

#
| visits
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×