使用极客云的常见问题

1.关于几个特殊文件夹的说明:
/input 直接访问存储硬件的文件夹,速度最快,尤其是在SSD硬盘上速度尤其快。但关机后此文件夹内容有一定概率会丢失。
如果您使用的机型是可以迁移的机型(机型描述中有 1区 2区 字样),下次开机如果发生迁移,此文件夹内容会丢失
如果您使用的机型没有迁移选项,下次开机此文件夹内容一般情况下都 不会 丢失。
如果您的任务对读取文件速度要求非常高,建议选择SSD机型并且将数据放入 /input 文件夹后,读取数据训练。
如果您的任务对读取文件速度要求一般,您可以将数据放入例如 /root 文件夹,之后读取数据训练,这样可以防止下次开机时训练数据丢失。
这个文件夹在SSD硬盘空间不足的时候(剩余空间小于5GB),会保留最近登录此机器的前10个人的/input数据,其余人的/input数据会被清除。
如果您有重要的数据需要后面取回,请在关机之前把他们复制到/data中,并保持账户余额不会欠费,这样您开任何一台机器都可以访问到您的这些数据。
/output tensorboard监视的文件夹,您把tensorboard要求的log输出到这个文件夹就可以使用tensorboard了。
/data 存放从 我的数据 页面上传的所有数据的文件夹,这个文件夹是网络存储,在此文件夹中枚举文件(ls或者find指令),或者直接在里面读取数据运行程序会很慢,
建议先把数据拷贝到 /input 文件夹再训练。

2.关于云主机收费:
云主机开机后开始计费,关机后不收费。开机期间按照每小时价格按秒计费。
关机后如果有优惠券可以使用,会将抵扣金额加回到余额中。
使用期间,当余额小于0元时将会给您的手机发短信提醒余额不足。
欠费超过1元后,实例将会被强制关机,但会保留硬盘中的数据。

当云主机遇到不可抗力(如:停电,断网等)停止运行影响到您的训练任务时,会自动给您一些补偿:
时租客户 将会最多补偿您一个小时的费用。
包机客户 将会补偿您从云主机停止服务到恢复服务之间的包机时长。

新用户可以在 云主机列表 页面申请新用户体验券,申请后等待客服发放即可。

3.关于存储计费:
您在极客云存储的数据将会按照每GB每月 0.5 元收取存储费用,存储空间的更新会有一定的延时。
存储空间的计算包括三个部分: 云主机硬盘中的增量数据 + /input文件夹内的数据 + 通过网页上传的数据。
存储费用收取的记录会体现在消费记录中,当您的余额连续欠费 15天 后,将会释放这些存储空间。

4.关于自定义框架安装:
极客云的云主机预装的操作系统都是Ubuntu16.04

您可以在极客云的云主机上安装任何您需要的软件框架,关机再开机后,所有安装好的软件都会保留。
如果是在Jupyter里面安装软件,请注意要进入Terminal之后再进行安装( Jupyter主页右上角 New->Terminal ),
在Notebook里面安装软件是无效的。

apt的源已经切换成了使用 阿里云 提供的apt源镜像,速度很快。
pip的源您可以用手动指定源的方式来安装,例如安装pandas可以使用命令:
pip install pandas --index https://mirrors.aliyun.com/pypi/simple/
使用国内的pip源将会极大的加快安装软件的速度。

我们的云主机是基于docker实现的,由于docker内部的文件系统不能作为docker的backing filesystem,
所以您 不能 在我们的云主机内安装docker。

您也可以使用conda来安装您需要的软件框架,conda会自动替您安装好一些依赖的库,很方便。
但国内的conda源好多都无法使用了。您可以使用以下方法指定其他的conda源。

vim /root/.condarc
然后把里面内容的改成这个样子
channels:
- defaults
show_channel_urls: true

然后命令行执行这个,现在这个国内源貌似还健在
conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

然后您就可以使用conda来安装软件包了,例如 conda install tensorflow-gpu=1.9

5.关于共享使用:
您可以在开机后,选择 停止独占 进入共享模式以一个十分低廉的价格来共享使用极客云的云主机,
但共享使用的用户不允许使用gpu进行训练,
因为现在有人使用多台云主机集体开共享模式进行挖矿,我们不得已必须关闭共享使用gpu的功能,保证正常用户的使用。
当有独占用户使用云主机时,同一台机器上的其他共享用户的进程只要跑起来就会被马上杀掉,保证独占用户的使用。

当前共享使用的价格约为独占使用价格的 四分之一

6.关于包月和包周:
您可以用包月和包周的方式使用云主机,更加优惠。
当前受加密货币价值波动影响,包月或包周价格有较大浮动。请在创建实例页面查看实时的包月包周价格。

操作方法是先 独占 您想包月或包周的机器,然后再点击 管理实例 -> 包月(或包周)

包月或包周之后,会分配您一个专属的端口号,此端口号在包月或包周期间保持不变。

7.关于开发票:
您可以到 我的发票 页面填写信息申请发票。
如果您对发票的抬头或者是细节有什么特殊的要求,可以写到发票申请的备注里面。
点击开票记录末尾的 再次开票 可以使用以前开票的信息再次开票。
您可以按照充值金额和使用金额开具发票。
建议您选择开电子发票 ,我们会将电子发票直接给您发送到您指定的Email地址,方便快捷。
您也可以开机打发票,我们会讲纸质发票邮寄到您指定的地址,但纸质发票需要走快递,耗时较长。
开票金额满200元可以免费开发票,不满200元将收取15元的手续费。
如果按照充值金额开具发票后,账户中未使用完的余额将不能退款。

8.关于云主机的迁移:
您可以对您的机器进行迁移,以便于您在另一台机器上使用和您之前完全相同的环境。迁移会将您原机器的所有内容,
包括您自己装的软件等等数据迁移到另一台机器上。( /input 文件夹下的内容可以选择是否迁移 )
迁移所需的时间和您的实例中的增量数据大小有关,数据量越大,迁移需要时间越长。
迁移的速度是您的迁出方的上传速度与迁入方的下载速度两者取最小值。
您也可以选择与现有机器相同的类型的云主机进行迁移,相当于在同一台机器上克隆一个和之前一样的环境。
在迁移结束之前,请 不要 开启、关闭、释放迁移相关的两台云主机,以免迁移失败。
您可以在 我的云主机 页面查看迁移的进度,该进度不会自动刷新,如果您需要查看当前进度需要刷新页面。
这个迁移的进度,在您的云主机中文件特别多的时候,会有进度回退的显示发生,不会实际影响您的迁移进度。只要不显示迁移失败就没有问题。
在迁移成功或失败的情况下页面会自动刷新。如果由于网络或其他原因迁移失败,您可以手动恢复迁移。
恢复迁移是断点续传的,您不会丢失迁移的进度。

9.训练完我能自动关机吗:
每次您开机的时候,我们会给您的实例生成一个关机指令 shutdown 和一个关机脚本 /root/shutdown.sh
您可以在命令行中使用 shutdown 指令来关机,
如果您想在训练完成后自动关机,您可以在您的python代码在训练完之后的最后一句代码,执行 os.system('/root/shutdown.sh') 来自动关机。
这个关机和您在网页上操作的关机是一样的,关机之后实例就不收费了,只收取微量存储空间占用费。

10.训练的时候我能关掉我的终端吗:
在终端中直接运行程序的时候断开终端,或者在Jupyter Notebook里面运行程序的时候关掉Jupyter的网页,都会导致进程直接被杀死。
如果您想要关掉终端或者网页,您需要将训练任务转为后台运行,并输出log到 /tmp/log3 文件。
您可以用类似这样的指令吧任务放到后台执行:
setsid python train.py > /tmp/log3 2>&1 &
当您下次进入终端时可以用如下指令看您的训练任务打出来的 log:
tail -f /tmp/log3

您在 python 中 print 之后需要调用 sys.stdout.flush() 才能让log实时的重定向到文件中。
或者在 python3 中您也可以 print("begin", flush=True) 这样的方式让log实时的重定向到文件中。

11.关于排队功能:
您如果发现您上次使用的机型已经被独占,除了使用迁移功能以外,您也可以排队等待这个机型空闲下来之后上机使用。
排队有两种模式:
1.排上之后自动独占上,同时给您发一个短信提醒已经独占上机器,可以开始使用了。
2.排上之后只会给您发一个短信提醒该机型已经空闲,您可以到网站上手动开机了。

使用 模式1 的排队者会按照排队开始的时间顺序排在所有使用 模式2 的排队者之前。
使用 模式2 的排队者会同时收到提醒机器空闲可以使用的手机信息。

在某些网络条件下,偶尔会出现开机后直接显示关机,但无法弹出本来应该弹出的排队提示的对话框的情况。
报告遭遇此种情况的用户绝大多数用户都是校园网用户,如果您遇到这种情况,请用手机热点连接网站操作排队试试看。

12.Jupyter Notebook登不进去怎么办:
云主机开机后较罕见情况下会出现 Jupyter Notebook 链接点不开或者点开后需要输入密码的情况,解决方法如下:

1.您可以在云主机列表页面 "操作 -> 更换端口号并重启" 重新分配登录的端口号,绝大多数情况下会修复这个问题。
2.您也可以尝试使用ssh登录云主机,如果也无法登录,可以在云主机列表页面 "操作 -> 更换端口号并重启" 试试。
3.如果关机后再开机还是无法解决问题,您可以给客服留言,手动处理一下。

13.Jupyter Notebook的一些小技巧:
您可以在Jupyter Notebook里面使用!来执行命令行命令,例如使用!ls来列出目录里面的文件。
您也可以使用%来直接运行.py的python程序,例如使用%run mnist_deep.py来运行mnist_deep.py程序。

14.为什么我还有余额会收到提醒欠费的短信:
新用户注册或邀请其他用户注册获得的代金券可以在关机时抵扣使用云主机的费用,但存储费用无法使用代金券。
所以提醒欠费的短信是以去掉代金券的余额来提醒的,只会在您连续欠费15天后会清理掉存储空间。
所以在此种情况下即使接到短信,您依然可以继续正常使用云主机,运行中的任务也不会受到任何影响。

15.为什么我独占使用云主机,但进程也停止了:
很多原因都可以导致这种情况发生,下面列举几种常见情况:

"MemoryError: Unable to allocate array with shape (xxx,xxx,xxx) and data type float32"
这种情况是tensor分配的显存或内存太大了,已经远远超过系统能放下的显存或内存量,建议检查显存或内存占用。

"只显示 Killed 或者 已杀死 "
这种情况如果是独占的话,可能是malloc分配了一整块很大的资源(比如说分配了一整块10G的内存),系统可能会认为是恶意程序直接给杀死。

"如果显示 非法指令(核心已转储)"
如果您使用tensorflow低版本遇到了这种情况,可以试试重新安装一下您需要的tensorflow的低版本。
pip uninstall tensorflow-gpu
conda install tensorflow-gpu=xxx

"failed to allocate xxxxM from device: CUDA_ERROR_OUT_OF_MEMORY: out of memory"
这种情况也是显存已经被占用很多了,再分配已经没有空闲的显存了,您可以检查一下是否分配了太多的显存。

16.为什么我执行nvidia-smi看不见进程信息:
这是因为极客云的系统是基于docker的,在docker容器的内部使用nvidia-smi是看不见进程id的。
不过您可以通过观察显卡的显存占用率和当前功耗来判断是否用上了GPU加速计算。

17.我可以在极客云上部署服务吗?
极客云是专门为了使用GPU加速深度学习计算和提供算力分享而设计的,部署线上服务并不是极客云主机的一个卖点。
不过您可以使用云主机预留的端口来部署线上服务。您在开机之后会在云主机列表内看见登录端口8xxx
(也就是ssh -p 8xxx root@bob.geeekvr.com的8xxx的数字)
您的登录端口如果是8xxx, jupyter就是18xxx, tensorboard就是28xxx,
28xxx是预留给tensorboard的,tensorboard默认是不开的,这个端口您可以自己支配使用。
如果您确定不适用jupyter notebook的话,也可以把jupyter的进程杀掉,这样18xxx端口也可以归您支配使用。

18.如果我需要的环境极客云没有怎么办?
您可以自己安装一个您需要的环境,测试没问题之后,您可以用这台实例当做原型机,
迁移到其他的机器上,这样就可以快速的复制出一模一样的环境到其他机器上。
您也可以跟客服提建议要求装一下您需要的环境,我们会陆续添加当前流行的框架软件包的环境。
如果您可以将您需要的环境的安装方法也顺便告诉我们,我们将感激不尽。

19.如果在网页上传数据的时候卡住怎么办?
如果您从网页上传大文件遇见停止上传的问题。
您可以用rsync直接传到云主机里面,可以开共享模式,减少传文件时候的开机费用。
指令类似这样。
rsync -e 'ssh -p 8xxx' -ah --progress src_path root@bob.geeekvr.com:/dest_path
8xxx替换成您的实例的登录端口号。
src_path替换成您本地的路径。
/dest_path替换成您云主机那边的绝对路径。

20.免责声明:
鉴于计算机及互联网以及个人机主出租算力资源的特殊性,您理解并同意以下情形不属于极客云违约:
(a)因黑客、病毒、电信部门技术调整和骨干线路中断等引起的事件;
(b)极客云在进行网络调整和维护时需要中断服务,或者由于Internet上通路的阻塞造成您对云服务访问速度下降;
(c)极客云在提前通知您进行数据备份、业务迁移或业务暂停后,极客云实施的操作维护,包含但不限于故障处理、系统升级、系统调优、系统扩容等导致的云服务不可用、您的内容不可用等;
(d)因机主的机器故障或网络电力等故障导致的数据丢失或损坏。
(e)因国家或运营商政策调整导致极客云无法继续为您提供服务的,不构成极客云违约。
极客云保留自行对云服务及其相关功能、应用软件变更、升级、修改、迁移的权利。极客云进一步保留在云服务中开发新的模块、功能、软件和服务的权利。上述所有新的模块、功能、软件和服务的提供,除非极客云另有说明,否则仍适用本协议。
您同意极客云在极客云没有重大过失或恶意的情况下无需对您或第三方在使用云服务时在数据传输中的迟延、不准确、错误或疏漏及因此而致使的损害负责。
因您不提供云服务开通的必要条件而使云服务不能提供、不能及时提供或造成云服务缺陷的,极客云不承担任何责任。因您的原因导致云服务延迟超过3个月的,极客云有权终止协议、相关订单及云服务,您应赔偿因此给极客云造成的相应损失。
您应负责您在极客云服务上部署的应用系统、OS系统,以及用户的口令、数据等的安全性保障。因您的安全保障不当或不足够导致的上述系统、口令、数据等的被盗、丢失、损坏、泄露等一切后果和损失由您自行承担。