linux 基础
- crontab

- 问当用户反馈网站访问慢,你会如何处理?
原因
- 服务器出口带宽不够用
本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。
跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
- 服务器负载过大,导致响应不过来
可以从两个方面入手分析:
分析系统负载如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分
析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访
问等。
- 数据库瓶颈
如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建
MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
- 网站开发代码没有优化好
例如 SQL 语句没有优化,导致数据库读写相当耗时。
怎么去排查
- 首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。
- 如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。
- 针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。
- 如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL慢查询的日志,看
解决方法?
- 如果是出口带宽问题,那么久申请加大出口带宽。
- 如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
- 如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
- 申请购买 CDN 服务,加载用户的访问。
- 如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务
- 常用命令
https://www.runoob.com/w3cnote/linux-common-command-2.html
$li-margin-bottom = 0.8rem
$post-tool-button-width = 2.5rem
.post-tools-container {
padding-top var(--component-gap)
.post-tools-list {
li {
margin-bottom $li-margin-bottom
&:last-child {
margin-bottom 0
}
}
li.tools-item {
position relative
box-sizing border-box
width $post-tool-button-width
height $post-tool-button-width
color var(--text-color-3)
font-size 1.2rem
background var(--background-color-1)
border-radius 50%
box-shadow 2px 2px 5px var(--shadow-color)
cursor pointer
&:hover {
box-shadow 2px 2px 8px var(--shadow-hover-color)
}
i {
color var(--text-color-3)
}
&:hover {
color var(--background-color-1)
background var(--primary-color)
i {
color var(--background-color-1) !important
}
}
&.toggle-show-toc {
display none
}
&.go-to-comments {
.post-comments-count {
position absolute
top 0
right -1rem
display none
align-items center
justify-content center
box-sizing border-box
min-width 1.1rem
height 1.1rem
padding 0 0.2rem
color var(--badge-color)
font-size 12px
background var(--badge-background-color)
border-radius 0.4rem
+keep-tablet() {
display none !important
}
}
}
}
li.status-item {
width $post-tool-button-width
height $post-tool-button-width
color var(--text-color-3)
font-size 1.6rem
cursor pointer
&.post-lock {
cursor default
.fa-lock-open {
display none
color var(--keep-success-color)
}
&.decrypt {
cursor pointer
.fa-lock-open {
display block
}
.fa-lock {
display none
}
}
}
}
}
}