运维小知识

1.网站访问很慢原因

服务端的原因

  • 1.服务器出口带宽不够用。
  • 2.服务器负载过大忙不过来,比如说CPU和内存消耗完了
  • 3.网站的开发代码没写好,例如mysql语句没有进行优化,导致数据库的读写相当耗费时间。
  • 4.数据库的瓶颈。数据库的规模特别大的,进行全局查询就会比较慢
  • 5.硬件配置低
    客户端的原因
    CPU或者是内存被占满

2.怎么检测网页卡顿原因

检测方法

  • 1.先看下是莫个用户访问慢还是所有人

  • 2.发现确实是自己服务器或者网站的问题,那么可以利用浏览器的调试功能(一般浏览器都会有),调试网络看看各种数据加载的速度,哪一项消耗了多少时间都可以看到,是哪块数据耗时过多,是图片加载太慢,还是某些数据加载老半天都查不出来。

  • 3.然后针对服务器的负载情况,可以去查看下服务器硬件(网络带宽、CPU、内存)的消耗状况

  • DNS解析时长问题: 可以通过购买解析服务, 来让自己的域名在各地DNS更多缓存

  • 网络带宽瓶颈: 考虑增加带宽网络带宽瓶颈: 考虑增加带宽 网络线路波动: 考虑CDN,或者镜像站第二,要考虑到服务器问题1.
    是否有服务器过载: 考虑增加硬件

  • I/O操作:数据库的频繁读写,服务器的频繁请求(包括静态文件的读取,图片的读取)等都属于I/O问题。对于数据库的问题,首先要优化SQL,存储过程等。

  • 4.如果发现硬件资源消耗都不高,都比较充裕,那要去看看是不是程序的问题了。这个可以通过查日志来找,比如PHP日志、Apache日志、mysql日志等等的错误日志,特别如mysql有个慢查询的日志功能,可以看到是不是某条mysql语句特别慢,如果某条语句花的时间太长,那这条语句很有可能有问题。

  • 5.至于说到的数据库太庞大,这个直接看就看得到了,比如一个表的文件大小变得特别大了。

  • 6是否有DDOS攻击(CC攻击,攻击web页面)
    优化方法

  • 1.出口带宽的话,加带宽

  • 2.mysql优化

  • 3.数据库太庞大,为了读写速度,进行‘拆表’、‘拆库’,,就是把数据表或者数据库进行拆分。

  • 4.采用非关系型数据库,它使用了缓存机制,它把数据缓存到了内存,用户访问数据直接从内存读取,读取速度就比在磁盘中读取快了很多

  • 5.采用CDN(内容分发网络)

3.常见的sql语句优化规则

  • 1)不要有超过5个以上的表连接(JOIN)
  • 2)考虑使用临时表或表变量存放中间结果。
  • 3)少用子查询
  • 4)视图嵌套不要过深,一般视图嵌套不要超过2个为宜。

4.查询速度慢的原因

  • 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
  • 2、I/O吞吐量小,形成了瓶颈效应。
  • 3、没有创建计算列导致查询不优化。
  • 4、内存不足
  • 5、网络速度慢
  • 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)
  • 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)
  • 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。
  • 9、返回了不必要的行和列
  • 10、查询语句不好,没有优化

5.如何简单优化 Linux系统

  • 1.不用root,添加普通用户,通过sudo授权管理
  • 2.更改默认的远程连接SSH服务端口及禁止root用户远程连接
  • 3.定时自动更新服务器时间 配置国内yum源 关闭selinux及iptables(iptables工作场景如果有外网IP一定要打开,高并发除外)
  • 调整文件描述符的数量
  • 精简开机启动服务(crond rsyslog network sshd) 内核参数优化(/etc/sysctl.conf)
  • 更改字符集,支持中文,但建议还是用英文字符集,防止乱码 锁定关键系统文件
  • 清空/etc/issue,去除系统及内核版本登录前的屏幕显示

6.能上QQ但不能上网问题精解:

  • 一、感染了病毒所致
  • 二、与设置代理服务器有关
  • 三、DNS服务器解释出错
  • 四、系统文件丢失导致IE不能正常启动
  • 五、IE损坏
  • 六、HOSTS文件的问题
  • 七、系统文件的问题
  • 八、杀毒软件的实时监控问题
  • 九、ApplicationManagement服务的问题
  • 十、网络协议和网卡驱动的问题

7.如何重置mysql root密码?

一、 在已知MYSQL数据库的ROOT用户密码的情况下,修改密码的方法:

  • 1、 在SHELL环境下,使用mysqladmin命令设置: mysqladmin –u root –p password “新密码” 回车后要求输入旧密码
  • 2、 在mysql>环境中,使用update命令,直接更新mysql库user表的数据:
    Update mysql.user set password=password(‘新密码’) where user=’root’;flush privileges;(注意:mysql语句要以分号”;”结束)
  • 3、 在mysql>环境中,使用grant命令,修改root用户的授权权限。
    grant all on . to root@’localhost’ identified by ‘新密码’;
    二、 如查忘记了mysql数据库的ROOT用户的密码,又如何做呢?方法如下:
  • 1、 关闭当前运行的mysqld服务程序:service mysqld stop(要先将mysqld添加为系统服务)
  • 2、 使用mysqld_safe脚本以安全模式(不加载授权表)启动mysqld 服务

/usr/local/mysql/bin/mysqld_safe --skip-grant-table &

  • 3、 使用空密码的root用户登录数据库,重新设置ROOT用户的密码

#mysql -u root
Mysql> Update mysql.user set password=password(‘新密码’) where user=’root’;
Mysql> flush privileges;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值