ubuntu20.04 安裝 hestiacp

要開始安裝之前
要先具備幾個領域

0.網路卡 TCP/IP 的調整
1.Nginx 的性能調整
2.php-fm 的調整
3.Mysql 的調整
4.hestiacp 安裝與設定
5.外掛工具安裝
6.備份處理

很機車的網路設定一定要注意縮排 幹
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      dhcp6: no
      addresses: [10.0.2.15/24]
      gateway4: 10.0.2.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

[php.ini設定]
date.timezone = Asia/Taipei


[時間設定]
timedatectl set-timezone Asia/Taipei
timedatectl 檢查時間

[extension 安裝]
1.先要安裝igbinary.
igbinary在序列化和反序列化的效率要比PHP自帶的高

這樣以後在例項化reids的時候加一句
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY);


[Hestiacp 安裝]

安裝指令
bash hst-install.sh -a no -w -v -x no -z no  -c no  -t no -i -b -k -y  -e tonny.markx@gmail.com -p p4ssw0rd -s MainServ

安裝後 關閉 Cloud-init
touch /etc/cloud/cloud-init.disabled

設定 Mysql
路徑 /etc/mysql/my.cnf
預設密碼 ./root/my.cnf

Nginx 組態樣式路徑
/usr/local/hestia/data/templates

 

innodb_log_file_size = 1G
innodb_buffer_pool_size=4G
innodb_file_per_table=1
innodb_flush_method=O_DIRECT

max_connections = 800  
sort_buffer_size = 2M 
read_buffer_size = 2M 
read_rnd_buffer_size = 250K

join_buffer_size = 250K
thread_stack = 256K
binlog_cache_size = 250K 

key_buffer_size = 32M 
query_cache_size = 64M

tmp_table_size = 64M
innodb_buffer_pool_size = 3072M
innodb_additional_mem_pool_size = 16M
innodb_log_buffer_size = 8M
max_connections = 800

更改資料路徑

———————————- Myql調整 ———————————-
[mysql效能文獻]
https://www.itread01.com/content/1544982859.html
https://blog.csdn.net/dc666/article/details/78901341

https://github.com/major/MySQLTuner-perl

記憶體計算機
https://www.mysqlcalculator.com/

注意要去phpmyadmin上面看是否生效
–>SHOW VARIABLES;

[網路卡 TCP/IP 的調整]
vm.swappiness

[網路效能調整]
來源:
https://ubuntuqa.com/zh-tw/article/8253.html

net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

顯示所有核心組態指令
sysctl -a 

處理ibdata的問題
https://dba.stackexchange.com/questions/16747/mysql-clean-ibdata1/16748#16748

解决方式:在干净关闭数据库情况下,删除ib_logfile,而后重启数据库,会自行创建该文件;
innodb_log_files_in_group:DB中设置几组事务日志,默认是2;
innodb_log_group_home_dir:事务日志存放目录,不设置,ib_logfile0…存在在数据文件目录下
innodb_flush_log_at_trx_commit:控制事务日志何时写盘和刷盘,安全递增:0,2,1
事务缓存区:log_buffer;
0:每秒一次事务缓存区刷新到文件系统,同时文件系统到磁盘同步,但是事务提交时,不会触发log_buffer到文件系统同步;
2:每次事务提交时,会把事务缓存区日志刷新到文件系统中去,且每秒文件系统到磁盘同步;
1:每次事务提交时刷新到磁盘,最安全;
适用环境:
0:磁盘IO能力有限,安全方便较差,无复制或复制延迟可以接受,如日志性业务,mysql损坏丢失1s事务数据;
2:数据安全性有要求,可以丢失一点事务日志,复制延迟也可以接受,OS损坏时才可能丢失数据;
1:数据安全性要求非常高,且磁盘IO能力足够支持业务,如充值消费,敏感业务;

[重點]
要一勞永逸地縮小 ibdata1,您必須執行以下操作:

STEP 01) MySQLDump 所有數據庫到一個 SQL 文本文件中(稱之為 SQLData.sql)

STEP 02) 刪除所有數據庫(mysql除外)

步驟 03) service mysql stop

步驟 04) 將以下行添加到 /etc/my.cnf

[mysqld]
innodb_file_per_table
innodb_flush_method=O_DIRECT
innodb_log_file_size=1G
innodb_buffer_pool_size=4G

旁注:無論您為 innodb_buffer_pool_size 設置什麼,請確保 innodb_log_file_size 是 innodb_buffer_pool_size 的 25%。

步驟 05) rm -f /var/lib/mysql/ibdata1 /var/lib/mysql/ib_logfile  此時,/var/lib/mysql中應該只有mysql資料

步驟 06) service mysql start

這將分別以 10MB、ib_logfile0 和 ib_logfile1 分別以 1G 的速度重新創建 ibdata1

步驟 07) 將 SQLData.sql 重新加載到 mysql

要先備份後動手
mysqldump -u root -p –all-databases > alldb.sql
mysqldump -u root -p –all-databases –skip-lock-tables> alldb.sql 

#可以處理character sets
mysqldump -u root -p –opt –all-databases -r backup.sql

— Warning: Skipping the data of table mysql.event. Specify the –events option explicitly.
Use:
–>mysqldump -u [user] -p –events –single-transaction –quick –all-databases | gzip 

#Add –verbose or -v options to see how the dump is progressing
When you are dumping all database. Obviously it is having large data. So you can prefer below for better:
Creating Backup:

–> mysqldump -u [user] -p[password]–single-transaction –quick –all-databases | gzip > alldb.sql.gz

這是恢復的語法
mysql -u root -p < alldb.sql

[系統資源管理]
taskset 指令 CPU 給某個程式使用 
我們以node.js來當作例子,首先你必須找到程式執行後的PID

# ps -ef|grep node

root      4925     1 40 08:54 ?        03:09:53 /usr/bin/node –nouse-idle-notification www.js

# taskset -pc 1 4925
這個指令就會把www.js 全放到 CPU1了