wsl、Prometheus、grafana、性能瓶颈分析
感觉学着没啥意义,有时候面试又问。
一、wsl
wsl解释看百度百科,主要是不想再花钱买云服务器了。为了有一个linux环境,方便学习
1、找到Windows功能,勾选
2、管理员运行终端
3、运行命令(默认安装ubuntu):wsl --install
中途输入linux系统的用户名和密码
最后按照提示重启
4、点击ubuntu即开始进入linux系统
二、Prometheus
官网文档:Getting started | Prometheus
更新软件包列表:sudo apt update。 安装:sudo apt install prometheus。【配置文件在/etc/prometheus/prometheus.yml】 启动:sudo systemctl start prometheus。 自启动:sudo systemctl enable prometheus。 默认的Web界面(localhost:9090)来查看监控数据。
exporter组件:用于收集不同类型服务的指标数据,如Node Exporter、MySQL Exporter、Redis Exporter等
下载地址:https://prometheus.io/download/
三、grafana
官方文档:Grafana documentation | Grafana documentation
https://grafana.com/grafana/download?edition=oss # sudo apt-get install -y adduser libfontconfig1 musl # wget https://dl.grafana.com/oss/release/grafana_10.4.2_amd64.deb # sudo dpkg -i grafana_10.4.2_amd64.deb # sudo /bin/systemctl start grafana-server # sudo /bin/systemctl daemon-reload 守护进程重载 # sudo /bin/systemctl enable grafana-server 自启动 默认的Web界面(localhost:3000)
创建Dashboard
1、创建datasources(http://localhost:3000/connections/datasources/new)
选择数据来源:Prometheus
根据实际情况填写,鉴权什么的我都没设置过,只填写了下图这些(name随便填)。然后点击最下面的save&test,没问题的话会提示成功了
2、创建dashboard(http://localhost:3000/dashboard/import)
见截图,三种方式。我是点击第二种方式后面那个链接
链接点进来就可以看到下图的各种dashboard,我自己是只装了node exporter,所以点击下图标记的那个dashboard;
点击node exporter后,在新页面Copy iD to clipboard 或 Download JSON;我复制了id,然后填进上图第二种方法的输入框,点击load
之后选择自己创建的数据源,点击import;也可以修改name
效果
四、性能瓶颈分析
1、系统架构分析:查看整个系统的架构,了解各个组件之间的关系和交互方式,从而确定可能存在的性能瓶颈。
2、响应时间分析:通过监控系统的响应时间,分析各个模块或接口的响应时间,找出响应时间较长的部分,进一步分析原因。
3、资源利用率分析:查看系统的CPU、内存、磁盘、网络等资源的利用率,找出资源利用率较高的部分,分析是否存在资源瓶颈。
4、日志分析:通过分析系统的日志文件,了解系统的运行情况和错误信息,从而找出可能存在的性能瓶颈。
5、工具分析:使用一些专业的性能分析工具,如JProfiler、VisualVM等,对系统进行性能分析,找出可能存在的性能瓶颈。
分析性能瓶颈需要综合考虑多个因素,包括硬件、软件、网络等方面,同时还需要结合具体的业务场景和需求进行分析。
因此,在进行性能瓶颈分析时,需要具备一定的系统架构和性能调优经验,同时还需要不断学习和探索新的方法和技术。
数据库性能:jmeter也可以测试;
redis:自带的benchmark
rabbitmq:rabbitmq-perf-test,模拟多个生产者或消费者向RabbitMQ发送或接收消息,从而测试RabbitMQ的性能指标
1、TPS波动较大:资源限制、锁竞争、网络波动、垃圾回收占用大量系统资源 2、负载不均衡: 使用负载均衡工具、节点配置相似 3、高并发下大量报错:资源限制(如CPU、内存、磁盘空间、网络带宽等) 代码问题(数据库连接没有正确关闭、内存泄漏、死锁等) 外部服务故障 4、并发数不断增加,TPS上不去,CPU使用率较低:索引、SQL、代码中设有同步锁 5、压测过程中TPS不断下降,CPU使用率不断降低:可能是压测工具问题 优化代码和资源、增加监控、备份和容错