ubuntu 16.04低延迟内核

在某些特殊环境中,比如音视频实时处理(比如MIDI),无线电数据的编解码(比如 OpenAirInterface 明确要求使用低延时内核)等情况下,我们希望系统尽可能的实时,同时又不会降低太多的性能(实时性越高,性能,功耗等的损失越大)。这种情况下,我们可以尝试使用低延时内核。

Linux提供了五种内核类型,对于内核类型的选择,可以参考如下的解释:

*******************************************

  • If you do not require low latency for your system then please use the -generic kernel.
  • If you need a low latency system (e.g. for recording audio) then please use the -preempt kernel as a fist choice. This reduces latency but doesn't sacrifice power saving features. It is available only for 64 bit systems (also called amd64).
  • If the -preempt kernel does not provide enough low latency for your needs (or you have an 32 bit system) then you should try the -lowlatency kernel.
  • If the -lowlatency kernel isn't enough then you should try the -rt kernel
  • If the -rt kernel isn't enough stable for you then you should try the -realtime kernel

*******************************************

目前(2018.02)为止,ubuntu官方库中提供前四种内核,我们一般建议使用lowlatency版本。可以使用如下命令安装:

目前,如果机器上使用了nvidia显卡,并且使用nvidia的闭源驱动的情况下,重启机器会无法进入图形界面,查看系统日志,出现如下错误信息:

解决方法如下:

注意,使用sudo apt-get dist-upgrade升级内核的时候,内核会被替换成generic版本,低延时内核需要手工重新安装一遍。

参考链接


ubuntu 16.04修复固件刷新失败的LimeSDR-USB V1.4

最近在使用LimeSDR捣鼓软件定义无线电,结果在刷新固件的过程中,莫名失败,导致无法识别硬件。

使用LimeUtil检查硬件,出现如下结果:

之后就再也无法通过

更新固件了,一直失败。

继续阅读ubuntu 16.04修复固件刷新失败的LimeSDR-USB V1.4

ubuntu 16.04上调整使用Innodb存储引擎的MySQL性能

最近WordPress上使用的WP Statistics打开的时候,整个网站都几乎处于卡顿的状态,无法正常访问。

使用top命令发现主要是mysqldCPU占用很高。于是使用mytop分析当前执行的查询语句,发现主要是在查询wp_statistics_visitor表导致的问题(我设置了不要删除浏览记录,因此会导致表内数据偏多)。

大致估计是由于分配给MySQL的内存不足导致频繁的磁盘交换引起的性能问题。

解决方法比较简单,就是增大MySQL可以使用的内存即可。

首先确认服务器上的MySQL使用的存储引擎是否为Innodb(缺省情况下已经是Innodb了):

如果确定是Innodb,则查询Innodb被限制使用的内存大小,如下:

默认情况下是128MB,鉴于内存已经不够了,我们扩大到256MB,这部分内存原则上越大越好,越大与磁盘的交互越少,性能越高。

如下命令调整Innodb的内存:

[mysqld]部分增加(如果存在则修改):

然后重启MySQL服务:

上面的调整之后,性能提升还是比较明显的。

参考链接


ubuntu 16.04.3上apache2服务器报告错误“script not found or unable to stat: /usr/lib/cgi-bin/php*”

最近在查看服务器上的apache2的错误日志的时候,发现如下错误信息:

刚刚开始感觉莫名其妙,因为PHP的解析已经通过PHP-FPM模式进行处理,服务器上的配置已经不需要cgi进行处理了。

网上搜索了一下,发现这个是由于ubuntuapache2的默认配置模版导致的,尤其是从ubuntu 12.04一路升级上来的系统,在配置模版中有指出/usr/lib/cgi-bin/这个路径,可是这个路径已经不再使用了。

修改方式如下:

向下查找,会发现如下内容:

如果确实网站已经不再使用任何cgi相关的东西了,可以直接注释掉这段代码。
另外如果开启了HTTPS,同理需要修改HTTPS对应的配置文件。

修改完成后,重启服务器:

参考链接


script not found or unable to stat: /usr/lib/cgi-bin/php-cgi

Ubuntu 17.10将于1月11日“重新”发布,修复“变砖”问题

Ubuntu 17.10将于111日“重新”发布,表示不会再让本本变砖~

Canonical上个月从Ubuntu的官方网站临时关闭了Ubuntu 17.10的下载通道,并留下通知:

由于在 某些笔记本电脑(主要为联想)上出现BIOS固件问题,导致笔记本电脑无法启动,目前不推荐下载Ubuntu 17.10。待问题解决后,再重新开放。

继续阅读Ubuntu 17.10将于1月11日“重新”发布,修复“变砖”问题

Ubuntu 14.04.5安装开源跳板机 Jumpserver 开发版(2018.01.08)

参照ubuntu 14.04.5下安装多版本Python(2.7.6/3.4.3/3.6.4),安装配置最新版本的Python 3.6.4Jumpserver需要Python 3.5以上的版本才能正常运行。

目前我们安装的是2018.01.08的开发版Jumpserver,此时的版本信息如下:

安装流程:

如果代码下载失败,可以从本站下载一份代码拷贝。点击这里下载jumpserver,点击这里下载coco

浏览器通过http://127.0.0.1:8080进行访问,默认的用户名密码都是admin

上面都启动成功之后,通过如下命令访问jumpserver

继续阅读Ubuntu 14.04.5安装开源跳板机 Jumpserver 开发版(2018.01.08)

ubuntu 14.04.5下安装多版本Python(2.7.6/3.4.3/3.6.4)

系统环境:ubuntu14.04.5 LTS,系统默认的python版本为2.7.4/3.4.3

但是实际工作中,某些通过pip安装的开发包需要不低于某个版本的python才能正常工作,比如ansible-2.4.2.0,明确只支持python-3.5以上的版本。在低版本的python上,无法正常运行。

而如果我们贸然更新系统python版本的话,会导致系统异常。因此我们借助pyenv实现基于用户的python版本定制。

安装pyenv

查看可以安装的python版本:

这里以安装python-3.6.4为例,首先安装依赖:

安装python

该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包之后重新执行该命令。

安装完成之后,需要使用如下命令对数据库进行更新:

查看当前已经安装的python版本

其中星号代表是当前系统正在使用的python版本是系统自带的。

设置全局的python版本

从上面,我们可以看出来当前的python版本已经变为了3.6.4。也可以使用pyenv localpyenv shell临时改变python的版本。

如果需要还原设定的python版本为系统自带的版本,则执行如下命令:

确认python版本

上面的操作会导致在当前用户下,执行python或者python3命令的时候都会被定向到python-3.6.4,如果只想执行python3命令的时候被定向到python-3.6.4,则可以直接删除python这个链接:

安装pip

安装完成之后,需要使用如下命令对数据库进行更新:

注意事项:
  • 输入python即可使用新版的python
  • 系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响
  • 使用pip安装第三方模块时会安装到~/.pyenv/versions/3.6.4下,不会和系统模块发生冲突
  • 使用pip安装模块后,可能需要执行pyenv rehash更新数据库

参考链接


Ubuntu 16.04.3系统VirtualBox-5.0.40使用USB设备

Ubuntu版本:16.04.3

Oracle VirtualBox版本:5.0.40

问题:

这是在设置启用USB时提示的错误。关于如何启用UbuntuOracle VM VirtualBoxUSB功能 (Oracle VM VirtualBox设置USB启用USB控制器启用USB 2.0 ECHI控制器)--如果你没有安 装Oracle VM VirtualBox Extension Pack的话,那么这时就会弹出一个提示框,提示上面给出的那段英文提示。

继续阅读Ubuntu 16.04.3系统VirtualBox-5.0.40使用USB设备

Ubuntu 14.04.5系统安装Docker-1.6.2操作基础镜像

执行如下命令安装:

启动服务:

测试服务是否正常:

创建基础镜像:

接下来,就是Dockerfile里面的内容了:

构建Docker镜像:

运行刚刚创建好的镜像:

导出刚刚创建好的镜像:

其他机器上加载我们导出的镜像:

删除不再使用的镜像:

如果运行时报错:

则尝试安装:

参考链接