1. 查看内存使用情况
free -g
当观察到free栏已为0的时候,表示内存基本被吃完了,那就释放内存吧
手动释放Linux内存
查看/proc/sys/vm/drop_caches的值
- cat /proc/sys/vm/drop_caches
值默认为0
然后,运行sync命令
- sync
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)
最后,输入手动释放内存的命令(3是释放所有缓存)
- echo 3 > /proc/sys/vm/drop_caches
sync表示将内存缓存区内容立即同步到磁盘,为了保证安全可以多执行几次。
drop_caches的值可以是0-3之间的数字,代表不同的含义:
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存
释放完内存后改回去让系统重新自动分配内存
- echo 0 >/proc/sys/vm/drop_caches
free -m #看内存是否已经释放掉了。
2. 查看磁盘使用情况
df -h
当发现磁盘使用率很高时,那就要释放磁盘空间了,删除一些不必要的文件
3. 查看磁盘IO使用情况
iostat -x 1
1表示1秒刷新一次
当发现最右侧%util很高时,表示IO就很高了,若想看哪个进程占用IO,执行iotop命令查看
4.查看cpu使用情况
top
下图中红框里表是cpu使用情况,最右侧的%id表示剩余,若很低,则表示cpu被吃完了,在top界面按shift+p对进程使用cpu排序,能看到哪些进程占用cpu较多
当然,top命令也能查看内存等信息,比较强大
5、 按内存升序排列;
ps aux --sort=+rss
按内存降序排列;
ps aux --sort=-rss
按cpu升序排列;
ps aux --sort=+%cpu
为按cpu降序排列。
ps aux --sort=-%cpu
6、 进入mysql 查看进程
mysql -r root -p;
show full processlist;
查看慢查询日志是否开启:
- show variables like '%slow_query_log%';
参数说明:
slow_query_log : 是否已经开启慢查询
slow_query_log_file : 慢查询日志文件路径
long_query_time : 超过多少秒的查询就写入日志
log_queries_not_using_indexes 如果值设置为ON,则会记录所有没有利用索引的查询(性能优化时开启此项,平时不要开启)
测试
1.执行一条慢查询SQL语句
- mysql> select sleep(2);