在服务器上有两块电池,一个纽扣电池和锂电池,纽扣电池主要是保证服务器的时间和BIOS设置正常保存,如果这个电池没电会导致服务器重启后时间会回到19xx年,BIOS设置也会丢失。锂电池主要是raid回写模式下在突然断电也能够将缓存的数据写入磁盘,保证数据安全,如果是直写模式,写入会更慢,但是不需要这个电池也能保证数据写入正常。测试在有电池损坏的情况下通过这个切换模式来进行规避硬件检测没有成功,硬件检测没有成功会导致在开机一段时间后正常关机。目前没有测试过卸下电池后是否能正常运行。
误操作
当失误操作升级了linux命令版本,导致服务异常,依赖异常,可以尝试apt --fix-broken install,这个命令可以尝试进行修复依赖,但是也会升级其他依赖版本,可能会有其他问题,也可以退回原本版本,使用apt install pack=version,可以线先使用apt policy package来进行可用版本的查看。使用`sudo update-alternatives --auto iptables`。update-alternatives可以根据系统优先级来进行切换,主要用来多个实现的同一个命令,系统默认使用哪一个。多个程序默认使用哪一个,通过--config来手动切换底层实现,来保证命令正常使用。例如iptables系统默认有两个实现iptables-nft和iptables-legacy,默认是nft,通过alternatives可以进行两者的切换。自动切换之后不一定有效,可以通过手动尝试。
conda
使用conda出现这个错误时
ImportError: cannot import name 'JSONDecodeError' from 'requests.exceptions' (/home/matgene/miniconda3/lib/python3.11/site-packages/requests/exceptions.py)
这个是因为requests库的版本太低导致的
/home/matgene/miniconda3/bin/python3.11 -m pip install requests --upgrade即可,要用conda里面的python
GPU
当使用显卡的服务,相关服务挂了,可以先查看nvidia-smi确保显卡无问题,再去看具体服务。
如果显卡不正常可以使用
lspci|grep nvidia查看pci接口是否正常,如果找到了,但是最后为rev ff的话,说明显卡已经关闭,可能是电源或者驱动问题要具体去看。
如果显卡关闭可以闲尝试显示功率和频率
sudo nvidia-smi -pm 1
#Enabled persistence mode via daemon for GPU 00000000:01:00.0.
#Enabled persistence mode via daemon for GPU 00000000:07:00.0.
#All done.
matgene@jishurelease:~$ sudo nvidia-smi -i 0 -pl 400
#Power limit for GPU 00000000:01:00.0 was set to 400.00 W from 575.00 W.
#All done.
matgene@jishurelease:~$ sudo nvidia-smi -lgc 300,1500
#GPU clocks set to "(gpuClkMin 300, gpuClkMax 1500)" for GPU 00000000:01:00.0
#GPU clocks set to "(gpuClkMin 300, gpuClkMax 1500)" for GPU 00000000:07:00.0
#All done.
nvidia-smi -i 1 -lgc 0,0
nvidia-smi --query-gpu=index,power.limit,clocks.current.graphics --format=csv
#index, power.limit [W], clocks.current.graphics [MHz]
#0, 400.00 W, 300 MHz
#1, 575.00 W, 180 MHz
nvidia-smi -q -l 2 -d TEMPERATURE -f nvidiatemp.log可以将温度信息存到nvidiatemp.log中,里面有温度相关,例如当前温度、关机温度等
如果温度正常、并且pci接口也联通,但是有一张卡使用nvidia-smi看不到,可能是因为驱动的一个pci线程掉了,可以先重启nvidi内核模块
如果显卡挂载有问题可以尝试重启内核,执行这个命令必须先将使用这些内核模块的全部关闭,可以先查看一下
sudo fuser -v /dev/nvidia*
# sudo fuser -k -9 /dev/nvidia* #杀死所有下面使用的程序sudo rmmod nvidia_uvm nvidia
sudo modprobe nvidianvidia_drm nvidia_modeset