标签

Honeymoon - Thomas Ng

归档

近期文章

Linux笔记

本文环境 PHP7.3,Laravel6.0 不懂的可以评论或联系我邮箱:owen@owenzhang.com 原文:https://blog.csdn.net/qq_38350907/article/details/107354178

查看centos版本

cat /etc/redhat-release

查看某端口的进程

lsof -i:55571

host文件

sudo vim /etc/hosts

查看cpu核数:

cat /proc/cpuinfo | grep ‘process’ | sort | uniq | wc -l

or

lscpu

查看内存总容量

cat /proc/meminfo

查看硬盘总容量

df -hl

显示:
文件系统    容量    已用    可用    已用%

挂载点     Filesystem  Size    Used    Avail    Use%

Mountedon   /dev/hda2   45G    19G     24G     44%

/        /dev/hda1    494

其他磁盘相关命令:

du -h --max-depth=1  查看各文件夹大小(这个命令要记住,经常用)

df -hl 查看磁盘剩余空间

df -h 查看每个根路径的分区大小

du -sh [目录名] 返回该目录的大小

du -sm [文件夹] 返回该文件夹总M数

du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)

查看硬盘的分区 #sudo fdisk -l

查看IDE硬盘信息 #sudo hdparm -i /dev/hda

查看STAT硬盘信息 #sudo hdparm -I /dev/sda 或 #sudo apt-get install blktool #sudo blktool /dev/sda id

查看硬盘剩余空间 #df -h #df -H

查看目录占用空间 #du -hs 目录名

pro、pre、test、dev环境

  • pro环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境。
  • pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。
  • test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定。
  • dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。

Ubuntu 忘记root用户密码

sudo passwd root

php-fpm重启

stop status  enable reload
systemctl restart php-fpm
systemctl restart php-fpm-81
service mysqld restart

查看php进程

ps aux | grep php

Linux 监控搭建方案

grafana+prometheus+node_exporter+mysql_exporter+redis_exporter 具体细节百度

Nginx 防压力测试

直接简单的方法限制同一个IP的并发最大为10 在nginx.conf编辑启用流量/IP/并发限制

vim nginx.conf
limit_conn_zone $binary_remote_addr zone=perip:10m; # 启用IP限制
limit_conn_zone $binary_remote_addr zone=one:10m; # 启用并发限制
limit_conn_zone $server_name zone=perserver:10m; 

然后在要防止的网站配置

limit_conn perserver 300; # 并发限制
limit_conn perip 25; # 单IP限制
limit_rate 512k; # 流量限制

其他

  1. 只要僵尸没有通过等待从系统中删除,它就会占用内核进程表中的一个插槽,如果这个表填满,就不可能创建进一步的进程。

吞吐量

当并发量(吞吐量)上涨的时候,系统会变得越来越不稳定,响应时间的波动也会越来越大,响应时间也会变得越来越慢,而吞吐率也越来越上不去(如下图所示),包括CPU的使用率情况也会如此。所以,当系统变得不稳定的时候,吞吐量已经没有意义了。吞吐量有意义的时候仅当系统稳定的时候。

Linux笔记插图

所以,吞吐量的值必需有响应时间来卡。比如:TP99小于100ms的时候,系统可以承载的最大并发数是1000qps。这意味着,我们要不断的在不同的并发数上测试,以找到软件的最稳定时的最大吞吐量。

性能测试应该怎么做?

查看ubuntu系统的版本信息

命令如下:

cat /proc/version

返回结果:

Linux version 4.4.0-30-generic (buildd@kissel)   linux内核版本号
gcc version 5.4.2              gcc编译器版本号
Ubuntu 20.04.3-17ubuntu1         Ubuntu版本号

重启ubuntu系统

命令如下:

reboot

普通用户切换到root用户

命令如下:

sudo su

返回结果:

owenunix@DESKTOP-CC1MK5I:~$ sudo su    owenunix@普通用户名为owenunix
[sudo] password for owenunix:          输入密码 
root@DESKTOP-CC1MK5I:/home/owenunix#   root@已切换到root用户

root用户切换到普通用户

命令如下:

su 用户名
e.g., su owenunix

返回结果:

root@DESKTOP-CC1MK5I:/home/owenunix# su owenunix  切换到普通用户为owenunix
owenunix@DESKTOP-CC1MK5I:~$       

查看ip

输入 ifconfig 查看ip 在虚拟机外访问也能看到

查看Linux系统版本

lsb_release -a

文件

删除文件夹 rm -rf test 创建文件夹 mkdir test

修改文件夹名称 mv test Test

修改文件名称 sudo mv test.txt new.txt

复制文件 cp /www/docker.yml /opt/

复制目录到指定目录下 cp -r /work/zjrx/public /work/zjrx/www/as2/

创建文件 touch laravel-2023-04-14.log

zip

如果在我们在 /home/html 目录下,可以执行以下命令:

zip -q -r html.zip *
复制代码

压缩

从压缩文件 cp.zip 中删除文件 a.c

zip -dv cp.zip a.c
复制代码

将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:

zip -q -r html.zip /home/html
复制代码

nginx配置文件目录

cd /etc/nginx/conf.d
cat /etc/nginx/nginx.conf
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

php-fpm配置文件

/etc/php-fpm.d/www.conf
复制代码

PHP配置文件

vi /etc/php.ini
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

enable status start restart stop
systemctl restart nginx
mysql
php-fpm
crond
sshd.service
version

复制代码

端口

查看端口使用情况

netstat -napt

netstat -an | grep 16010
复制代码

查看防火墙状态 systemctl status firewalld

开启防火墙 systemctl start firewalld

开机启动防火墙 systemctl enable firewalld

关闭防火墙 systemctl stop firewalld

重启防火墙 service firewalld start

若遇到无法开启 先用:systemctl unmask firewalld.service 然后:systemctl start firewalld.service

查询指定端口是否已开

firewall-cmd --query-port=666/tcp
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

开放端口保存

添加指定需要开放的端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

重载入添加的端口:

firewall-cmd --reload
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

查询指定端口是否开启成功:

firewall-cmd --query-port=123/tcp
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

移除端口

移除指定端口:

firewall-cmd --permanent --remove-port=123/tcp
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

查询开放的防火墙列表

firewall-cmd --zone=public --list-ports
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

安全日志

cat var/log/secure

Linux常用命令之chmod修改文件权限777和754

示例:chmod 777 /etc/squid 运行命令后,squid文件夹(目录)的权限就被修改为777(可读可写可执行)。

查看文件内容

cat 20.log

查看PHP运行进程

ps aux|grep php

终止运行进程

sudo kill -9 11621

运行 pidstat 来看一下进程的情况

pidstat -u 5 1

每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况

全局模糊查找文件夹名称

find / -name ‘nginx

centos 更改清华源

sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
复制代码

LINUX tar解压到指定目录

tar xf csdn.tar -C /home/quantum6/work

解压当前目录 tar -xzf nginx-1.23.3tar.gz

删除文件夹

rm -rf /var/log/httpd/access

vmstat 是一个常用的系统性能分析工具

vmstat 是一个常用的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析 CPU 上下文切换和中断的次数。

# 每隔5秒输出1组数据
$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 7005360  91564 818900    0    0     0     0   25   33  0  0 100  0  0
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

cs(context switch)是每秒上下文切换的次数。

in(interrupt)则是每秒中断的次数。

r(Running or Runnable)是就绪队列的长度,也就是正在运行和等待 CPU 的进程数。

b(Blocked)则是处于不可中断睡眠状态的进程数。

# 每隔1秒输出1组数据(需要 Ctrl+C 才结束)
# -w参数表示输出进程切换指标,而-u参数则表示输出CPU使用指标
$ pidstat -w -u 1
08:06:33      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
08:06:34        0     10488   30.00  100.00    0.00    0.00  100.00     0  sysbench
08:06:34        0     26326    0.00    1.00    0.00    0.00    1.00     0  kworker/u4:2

08:06:33      UID       PID   cswch/s nvcswch/s  Command
08:06:34        0         8     11.00      0.00  rcu_sched
08:06:34        0        16      1.00      0.00  ksoftirqd/1
08:06:34        0       471      1.00      0.00  hv_balloon
08:06:34        0      1230      1.00      0.00  iscsid
08:06:34        0      4089      1.00      0.00  kworker/1:5
08:06:34        0      4333      1.00      0.00  kworker/0:3
08:06:34        0     10499      1.00    224.00  pidstat
08:06:34        0     26326    236.00      0.00  kworker/u4:2
08:06:34     1000     26784    223.00      0.00  sshd
复制代码

![]()Linux笔记插图1” alt=”” title=”点击并拖拽以移动” />

一个是 cswch ,表示每秒自愿上下文切换(voluntary context switches)的次数,另一个则是 nvcswch ,表示每秒非自愿上下文切换(non voluntary context switches)的次数。

ab测压

curl访问接口地址

curl 127.0.0.1:9501

每秒1万次请求

ab -k -c 100 -n 10000 http://127.0.0.1:9501/

centos7下修改hosts文件

vi /etc/hosts

重启网络模块生效,重启命令如下,无需重启操作系统 systemctl restart network

/etc/init.d/network restart

CentOS7安装Git

sudo yum install -y git

CentOS7安装ad

sudo yum -y install httpd-tools

Buy me a cup of coffee 🙂

觉得对你有帮助,就给我打赏吧,谢谢!

微信赞赏码链接,点击跳转:

Linux笔记插图2