linux系統swappiness參數在內存與交換分區間優化

 

 

swappiness的值的大小對如何使用swap分區是有著很大的聯繫的。swappiness=0的時候表示最大限度使用物理記憶體,然後才是 swap空間,swappiness=100的時候表示積極的使用swap分區,並且把記憶體上的數據及時的搬運到swap空間裏面。linux的基本默認設置為60,具體如下:

[root@timeserver ~]# cat /proc/sys/vm/swappiness
60

也就是說,你的記憶體在使用到100-60=40%的時候,就開始出現有交換分區的使用。大家知道,記憶體的速度會比磁片快很多,這樣子會加大系統io,同時造的成大量頁的換進換出,嚴重影響系統的性能,所以我們在操作系統層面,要盡可能使用記憶體,對該參數進行調整。

臨時調整的方法如下,我們調成10:

[root@timeserver ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@timeserver ~]# cat /proc/sys/vm/swappiness
10
這只是臨時調整的方法,重啟後會回到默認設置的

要想永久調整的話,需要將
需要在/etc/sysctl.conf修改,加上:
[root@timeserver ~]# cat /etc/sysctl.conf

Controls the maximum number of shared memory segments, in pages

kernel.shmall = 4294967296
vm.swappiness=10

[root@timeserver ~]# sysctl -p

這樣便完成修改設置!

Ubuntu/CentOS使用Supervisor管理进程

<h2></h2>
<h2></h2>
<h2>1.安装supervisor</h2>

<span class="hljs-meta">#</span><span class="bash">pip  </span>
pip install supervisor  
<span class="hljs-meta">  
#</span><span class="bash">ubuntu  </span>
sudo apt-get install supervisor  
<span class="hljs-meta">  
#</span><span class="bash">centos (可能需要先安装epel源) </span>
yum install epel-release
yum -y install supervisor  

<div data-unique="2.启动"></div>
<h2>2.启动</h2>
安装完后如supervisor没启动,可以使用如下,手动启动

<span class="hljs-meta">#</span><span class="bash">启动supervisor  </span>
/usr/bin/supervisord -c /etc/supervisord.conf  
或者
supervisord -c /etc/supervisord.conf

进入 cd /etc 目录 找到supervisord.conf 配置文件和supervisord.d 文件夹,编辑supervisord.conf文件,拉到最底部我们可以看到

files = supervisord.d/*.ini 这句代码说明它会加载supervisord.d文件夹中的所有.ini配置文件

 
<h2>3.添加开机自启动</h2>

<span class="hljs-comment">#创建supervisord.service  </span>
<span class="hljs-attribute">vi</span> /usr/lib/systemd/system/supervisord.service  
  
<span class="hljs-comment">#supervisord.service文件内容  </span>
[Unit]  
Description=Supervisor  
  
[Service]  
Type=forking  
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf  
ExecStop=/usr/bin/supervisorctl <span class="hljs-variable">$OPTIONS</span> shutdown  
ExecReload=/usr/bin/supervisorctl <span class="hljs-variable">$OPTIONS</span> reload  
KillMode=process  
Restart=<span class="hljs-literal">on</span>-failure  
RestartSec=<span class="hljs-number">42s</span>  
  
[Install]  
WantedBy=multi-user.target  

激活开机启动

<span class="hljs-meta">#</span><span class="bash">激活开机启动  </span>
systemctl enable supervisord.service  
<span class="hljs-meta">  
#</span><span class="bash">如修改了supervisord.service配置文件需重新加载  </span>
systemctl daemon-reload  

各种开机自启动脚本:https://github.com/Supervisor/initscripts
<div data-unique="4.创建一个配置文件"></div>
<h2>4.创建一个配置文件</h2>

[<span class="hljs-meta">program:DeployLinux</span>]   <span class="hljs-meta">#DeployLinux  为程序的名称</span>
command=dotnet DeployLinux.dll <span class="hljs-meta">#需要执行的命令</span>
directory=/home/publish <span class="hljs-meta">#命令执行的目录</span>
environment=ASPNETCORE__ENVIRONMENT=Production <span class="hljs-meta">#环境变量</span>
user=root <span class="hljs-meta">#用户</span>
stopsignal=INT 
autostart=<span class="hljs-literal">true</span> <span class="hljs-meta">#是否自启动</span>
autorestart=<span class="hljs-literal">true</span> <span class="hljs-meta">#是否自动重启</span>
startsecs=<span class="hljs-number">3</span> <span class="hljs-meta">#自动重启时间间隔(s)</span>
stderr_logfile=/<span class="hljs-keyword">var</span>/log/ossoffical.err.log <span class="hljs-meta">#错误日志文件</span>
stdout_logfile=/<span class="hljs-keyword">var</span>/log/ossoffical.<span class="hljs-keyword">out</span>.log <span class="hljs-meta">#输出日志文件</span>

<span class="hljs-meta">#</span><span class="bash">加载配置文件 </span>
supervisorctl reread
<span class="hljs-meta">

</span><span class="bash">启动spring-app </span>

supervisorctl start spring-app
<span class="hljs-meta">

</span><span class="bash">查看进程状态 </span>

supervisorctl status

<h3>遇到的问题</h3>
添加要启动的程序配置文件后supervisor无法再启动,用systemctl status supervisor 命令查看状态发现有错误。

把添加的程序配置文件删除后再启动 supervisor可以正常启动,这样问题就是出现在了所添加的程序配置文件上。

比较奇怪的的是配置文件和另一台一样也会报错,需要把配置文件里面的一行命令删除后才正常。好奇怪,也不知道为什么。

apache添加多站点

 

之前一直使用宝塔面板搭建lnmp.最近在斐讯N1上跑Ubuntu 16.04,估计是宝塔对ARM的处理器适配还不是很好,lnmp没有一个能安装上的,无奈只有不用面板了(关键是面板太方便了)。看着教程安装了apache,不知道该如何下手啊,之前都是使用nginx。现在记录下apache下在一个主机上实现多站点的操作。

添加一个新的站点,例如A.com

首先在apache的配置文件夹/etc/apache2/sites-available下面添加一个文件A.com.conf(名字可以是其他的,看自己怎么命名)。

内容为

 

[info]

<VirtualHost *:80>
ServerName IP或者域名
ServerAdmin webmaster@localhost
DocumentRoot /var/www/nextcloud    #(这个是你站点的目录)

<Directory "/var/www/nextcloud/">
Options MultiViews FollowSymlinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>

保存后执行a2ensite A.com(你的配置文件名称)

重启apache服务    service apache2 restart

这样一个站点就增加好了。

然后再用相同的方法增加站点B。B.com

 

如果使用的端口不是80或者443需要在/etc/apache2/ports.conf裏面加入你制定的端口。不然是訪問不了的!

其实也很简单。

 

 

ubuntu 添加開機自啟軟件方法

<div>
<h3></h3>
<h3>用systemd控制开机自启</h3>
cd /lib/systemd/system/ && sudo touch frps.service
sudo nano frps.service
在其中添加如下内容

[Unit]
Description=fraps daemon
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
<span class="hljs-comment">#启动服务的命令(此处xxx换做你的实际安装目录)</span>
ExecStart=xxx/frps -c xxx/frps.ini

[Install]
WantedBy=multi-user.target

然后启动frps
sudo systemctl start frps
应用自启
sudo systemctl enable frps
有关于systemd的知识请自行谷歌

</div>
 

荒野無燈padavan 使用FRP內網穿透以及Aria2添加遠程連接使用

服務端的搭建請參考燈大的帖子http://www.right.com.cn/forum/thread-310734-1-4.html

或者去燈大的博客http://files.80x86.io/router/rom/troubleshoot/frp/installation.md

 

搭建好服務端后把VPSIP以及你設定的端口號填進下圖的Server Addr和 Server Port。privilege Token與服務端一致,其他不要修改。

 

Http SubDomain Host 為解析到你VPS的一個域名,並且和frps.ini裏面設定的一致。

這些設置燈大的教程說的很清楚了。這樣FPR就搭建好了,去服務端看看有沒連上,如果沒有客戶端連接到服務端再看看哪裡設置不對。

 

下面是在FRP Tunnel中添加Aria2.

首先在防火墻裏面允許從外網訪問Aria2,并設置好端口,默認6800.

在Frp Tunnel中添加aria2的SubDomain并把域名解析到VPS。

 

启用Aria2 并设置好下载路径。

在局域网的时候打开 Web control 应该可以直接连接上。

通过FRP内网穿透进去路由器。打开Aria2的 Web control

 

进入AriaNg Settings 在Aria2 RPC Address写入 在FRP Tunnel中设置的 Aria2的域名,后面端口写入连接的端口,FPRs.ini中默认为8081如果自己修改了请修改为一致。

 

设置好后Aria2 Status 就能连接上了

 

本文作者為ISSAC,轉載請注明!