linux07

进程


查看进程 ps


ps [options]

支持的命令格式

  • unix格式:-h,-e

  • BSD格式:a,x,u

  • GNU长格式:--help

选项

[root@xin ~]#ps
  PID TTY         TIME CMD
 2838 pts/0    00:00:00 bash
 3101 pts/0    00:00:00 ps
  pid 终端   当前命令占用CPU的时间 命令
 
ps a :所有终端
ps ax :包括不连接终端的进程
ps axu :显示进程详细信息
ps f :显示进程树
ps aux k%cpu :cup从小到大排序,默认是递增
ps aux k-%cpu :从大到小排序
ps opid,cmd,%cpu : 指定显示的属性,可以和ax使用,不能和u使用
ps L :获取o后面支持的选项
ps -L :显示线程
ps -e :相当于ax
ps -ef :显示详细信息,相当于u
ps -F : 显示更详细信息
ps -H :显示树状结构
ps -p 1165 :根据pid来
ps -U username :获取指定的用户信息
ps -ef | grep python

常用选项:aux,-ef,-eFH

ps输出属性

  • VSZ 虚拟内存(程序认为可以获取到的)

  • PSS 实际内存

  • PSR cpu编号

  • STAT 状态

  • %cpu cpu的占用率

  • %mem 内存的占用率

根据名称来查看进程


pidof name
[root@xin ~]#pidof python
1157 822

系统工具


uptime

[root@xin ~]#uptime
09:17:47 up 53 min,  2 users, load average: 0.00, 0.01, 0.05

09:17:47:当前时间
up 53 min:当前服务器运行时长
2 users:当前在线用户数
load average: 0.00, 0.01, 0.05 :cpu的负载分别是1分钟,5分钟,15分钟

cpu平均负载:在特定时间之内cpu运行的平均进程数,不超过cpu核心数的2倍认为良好

top

  • 首部信息

    • uptime信息

    • tasks :进程总数,运行,睡眠数,停止数,僵尸进程

    • cpu信息

      %Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

      0.0 us : 用户空间
      0.1 sy :系统空间
      0.0 ni :nice值
      99.9 id :空间
      0.0 wa :等待
      0.0 hi :硬中断
      0.0 si :软中断
      0.0 st :虚拟机偷走的时间
    • 内存信息:m

    • cpu分别显示 1(数字)

  • 排序

    • 默认是cpu 的占用率 :P

    • M:内存占用率

    • T :cpu的占用时间

    • q :退出

  • 修改刷新频率:s,默认是三秒

  • 杀死进程:k,默认是第一个

  • 保存文件:W

  • 选项:

    top -d  刷新时间
    top -b 显示所有的信息
    top -n# 指定刷新#次后退出

htop


  • epel源

性能分析


free


[root@xin ~]#free
            total       used       free     shared buff/cache   available
Mem:        1865308      860284       79068       11384      925956      755980
Swap:       2097148           0     2097148

free -m kb
free -g gb
free -h 人类易读方式
free -c # 刷新次数
free -b 字节

vmstat


vmstat [options] [delay [count]]

[root@xin ~]#vmstat 1 3   # 每秒刷新一次,刷新三次退出
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b   swpd   free   buff cache   si   so   bi   bo   in   cs us sy id wa st
1  0      0  79292    208 925804    0    0    55     1   31   31  0  0 100  0  0
0  0      0  79284    208 925804    0    0     0     0  134  115  0  0 100  0  0
0  0      0  79292    208 925804    0    0     0     0  123  108  0  0 100  0  0

procs
  r :正在运行的进程个数
  b :阻塞队列的长度
memory
  swap :虚拟内存大小
  free :空闲物理内存的大小
  buff :用于buff的大小
swap
si :从磁盘交换到内存的数据速率(kb/s)
so :从内存交换到磁盘的数据速率(kb/s)
io
bi :从磁盘读取到系统的速率 (kb/s)
bo :从系统写入到磁盘速率(kb/s)
system
in : 中断频率
cs :进程之间切换的频率

iostat


查看磁盘的读写速度

iostat 1 10  每秒刷新一次,刷新10次

dstat


查看CPU内存

-c  cup
-m 内存
-d 硬盘
-p 进程
-n 网络
-r io请求
-s swap
dstat --top-cpu 显示占用CPU最多的进程
dstat --top-io   显示占用io最多的进程
dstat --top-mem 显示占用内存最多的进程
dstat --tcp 显示tcp的信息
dstat --udp 显示udp的信息

iftop


显示网卡的流量

进程的管理工具


kill

向进程发送信号,实现对进程的管理,每个信号对应不同的值,也对应不同的含义,不区分大小写

# 查询可用信号
kill -l
# 常用信号
1)sighub(hub) :不需要关闭程序,重新加载配置文件
2)sigint :终止进程,相当于ctrl+c
9)sigkill :强制杀死进程
15)sigterm :终止正在运行的进程
18)sigcont :继续运行
19)sigstop :后台休眠
# 按照pid
pid -n pid
# 按照名称
killall -n name
pkill -n name

作业管理


  • 前台作业:一直占用终端的作业

  • 后台作业:不占用当前的终端

让作业运行于后台

  • ctrl+z:对于启动中

  • command & :也会输出到终端

脱离终端

  • nohub command & >/dev/null &

  • yum install screen

    -list查看所有的screen窗口
    -r 进入

安全


防火墙


  • 绿盟

  • 深信服

  • 启明星辰

  • 飞塔

  • 思科

  • 华为

  • 华三

    4表5链

    iptables -L :查看防火墙策略
    iptables -F :清空防火墙
    systemctl disable firewalld :开机不启动
    systemctl stop firewalld 关闭

selinux


# 配置文件
/etc/selinux/config
# 永久生效
SELINUX=disabled
# 临时生效
setenforce 0
# 查看selinux的状态
getenforce

编译后的软件如果想删除,直接删除编译生成到目录据可以

虚拟环境


  • 安装

    pip3 install virtualenv -i https://pypi.douban.com/simple
  • 创建虚拟环境

    virtualenv --no-site-packages django11 

    django11 是一个别名
    --no-site-packages 创建一个全新的python环境
    --python 指定以哪个python来创建虚拟环境
  • 进入虚拟环境

    [root@xin ~]#source django11/bin/activate
    (django11) [root@xin ~]#echo $PATH
    /root/django11/bin:/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 退出虚拟环境

    (django11) [root@xin ~]#deactivate 
    [root@xin ~]#
  • 确保环境一致

    1.在windows cmd中执行如下命令
    将windows上安装的包做快照
    C:\Users\86150>pip freeze > requirement.txt
    2.将requirement.txt发送到linux上
    3.切换虚拟环境
    pip3 install -r requirement.txt -i https://pypi.douban.com/simple

virtualevwrapper


关于虚拟环境的管理工具

为了解决虚拟环境管理的问题,因为虚拟环境可以在任何目录下创建

1. 安装
[root@xin opt]#pip3 install virtualenvwrapper -i https://pypi.douban.com/simple

2.修改文件
vim ~/.bashrc
# 在里面加上如下内容
export WORKON_HOME=/envdir  
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'  
export VIRTUALENVWRAPPER_PYTHON=/opt/python36/bin/python3      
source /opt/python36/bin/virtualenvwrapper.sh

3. 加载~/.bashrc
source ~/.bashrc

4.创建环境
mkvirtualenv django11  # 创建并切换到Django11下

5.进入虚拟环境
workon django11

6.切换到当前虚拟环境的文件夹:cdvirtualenv
(django11) [root@xin opt]#pwd
/opt
(django11) [root@xin opt]#cdvirtualenv
(django11) [root@xin django11]#pwd
/envdir/django11


7.切换到当前虚拟环境的第三方包的文件夹
cdsitepackages

8.退出
deactivate

9.列出当前管理的虚拟环境
lsvirtualenv
(django11) [root@xin ~]#lsvirtualenv
django11
========


django20
========

10.列出当前虚拟环境的第三方包
lssitepackages

11.删除虚拟环境
rmvirtualenv 必须要退出才能删除

 

Mysql


安装


mariadb :是mysql的分支,可以直接在官方网站下载

  • 下载

    wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
  • 解压

    tar xf MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar
  • 安装

    yum install -y *.rpm
  • 修改数据

    [root@localhost opt]#vim /etc/my.cnf

    datadir=/mydata/mysql
    socket=/mydata/mysql/mysql.sock

    [root@localhost opt]#mkdir -p /mydata/mysql
    [root@localhost opt]#chown mysql -R /mydata/mysql
    [root@localhost opt]#systemctl start mysqld

     

默认安装位置:/var/lib/mysql

报错信息

2019-08-30T11:18:22.976635Z 0 [Warning] Can't create test file /mydata/mysql/localhost.lower-test
2019-08-30T11:18:22.976687Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.27) starting as process 2788 ...
2019-08-30T11:18:22.980289Z 0 [Warning] Can't create test file /mydata/mysql/localhost.lower-test
2019-08-30T11:18:22.980338Z 0 [Warning] Can't create test file /mydata/mysql/localhost.lower-test
解决办法:setenforce 0

重置密码

默认密码:
[root@localhost opt]#grep "pass" /var/log/mysqld.log

# 进入再次修改数据
[root@xin opt]#vim /etc/my.cnf
# 在最后面加上以下两句
[mysql]
socket=/mydata/mysql/mysql.sock
Xwx@1120
[root@localhost opt]#mysql_secure_installation

输入root密码  ############# Xwx@1120 #####################
是否要修改密码
是否要修改root密码(大小写、数字、特殊字符)
是否要删除匿名用户
是否禁止root远程登录
是否要删除test数据库
是否要刷新表的权限

# 启动数据库
[root@localhost opt]#mysql -uroot -p

密码校验规则


设置密码的校验规则
mysql> set global validate_password_policy=0;
0 校验级别最低,只校验密码的长度,长度可以设定
1 必须包括大写字母、小写字母、数字、特殊字符
2 必须满足上面两条,并追加,对于密码中任意连续的4个(或者4个以上) 字符不能是字典中的单词

mysql> set global validate_password_length=3; 修改密码的最短长度

创建用户


create user 'xin'@'ip' identified by 'password';
全部ip的话则是%

查看权限


show grants;

用户授权


# 授权
mysql> grant all on *.* to 'root'@'%' identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)

# 刷新
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

Mysql主从


  • 主服务器上配置如下

    [root@localhost opt]#vim /etc/my.cnf
    # 增加以下三条数据
    server-id=1  # 设置id
    log-bin=/mydata/log/master-bin  # 启动binlog日志
    sync_binlog = 1  # 确保主从复制事务安全
  • 主服务器执行如下sql

    # 创建用户
    mysql> grant replication slave on *.* to 'slave'@'192.168.21.131' identified by '1234';
    Query OK, 0 rows affected, 1 warning (0.00 sec)

    # 刷新
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    show master status\G
  • 从服务器配置如下

    [root@localhost opt]#vim /etc/my.cnf
    server-id =12
    relay_log =/mydata/log/slave-log
    sync_binlog = 1
    read-only=ON
  • 从服务器执行如下sql

    CHANGE MASTER TO
     MASTER_HOST='master2.example.com',
     MASTER_USER='replication',
     MASTER_PASSWORD='password',
     MASTER_PORT=3306,
     MASTER_LOG_FILE='master2-bin.001',
     MASTER_LOG_POS=4,
     MASTER_CONNECT_RETRY=10; #监控主服务器的时间
     
    # 连接主库
    change master to master_host='192.168.71.134',master_user='slave',master_password='1234';


    # 启动进程
    start slave;

    # 查看状态
    show slave status\G
  • 问题

    Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
    解决办法:
    rm -rf /mydata/mysql/auto.cnf
    systemctl restart mysqld

mysql配置文件

character-set-server = utf8                                #默认字符集
collation-server = utf8_general_ci                         #设置校对规则
external-locking = FALSE                                   #避免外部锁定(减少出错几率,增加稳定性)
skip-name-resolv                                           #禁止外部连接进行DNS解析
binlog-cache-size = 32M                                    #设置二进制日志缓存大小
sync-binlog = 1                                            #每隔N秒将缓存中的二进制日志记录写回硬盘
max_binlog_cache_size = 8M                                 #最大的二进制Cache日志缓冲尺寸
max_connections = 2000                                   #指定MySQL允许的最大连接进程数,show global variables like '%connections%';
max_user_connections = 2000                              #单用户最大的连接数,max_user_connections < 实例 max_user_connections < max_connections
max_connect_errors = 100000                              #默认为10,设置每个主机的连接请求异常中断的最大次数,超过后会blocked,连接成功后初始0,出现错误后需要flush hosts

max_allowed_packet = 8M                                  #服务器一次能处理的最大的查询包的值
wait_timeout = 360                                       #指定一个请求的最大连接时间
interactive_timeout = 360                                #连接保持活动的时间

#错误日志
log_error = /data/mysql/data/mysql_error.log
#慢查询相关参数
slow_query_log = on                                    #开启慢查询
log-queries-not-using-indexes                          #记录所有没有使用到索引的查询语句
long_query_time = 2                                    #指定多少秒未返回结果的查询属于慢查询
min_examined_row_limit = 5                             #记录那些由于查找了多余5次而引发的慢查询
log-slow-admin-statements                              #记录那些慢的OPTIMIZE TABLE,ANALYZE TABLE和ALTER TABLE语句
log-slow-slave-statements                              #记录由slave所产生的慢查询
slow_query_log_file = /usr/local/mysql/data/slow.log   #指定慢查询日志文件路径
table_cache = 614                                      #表分配的内存,物理内存越大,设置就越大
table_open_cache = 512                                 #设置高速缓存表的数目
thread_cache_size = 64                                 #服务器线程缓存数,与内存大小有关(建议大于3G设置为64)
thread_concurrency = 32                                #CPU核数的两倍
query_cache_size = 32M                                 #指定MySQL查询缓冲区的大小
query_cache_limit = 2M                                 #只有小于此设置值的结果才会被缓存
query_cache_min_res_unit = 2k                          #设置查询缓存分配内存的最小单位
key_buffer_size = 512M                                #指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能
sort_buffer_size = 2M                                 #设置查询排序时所能使用的缓冲区大小,系统默认大小为2MB
join_buffer_size = 1M                                 #联合查询操作所能使用的缓冲区大小
read_buffer_size = 4M                                 #读查询操作所能使用的缓冲区大小
read_rnd_buffer_size = 16M                            #设置进行随机读的时候所使用的缓冲区
thread_stack = 192K                                   #设置Mysql每个线程的堆栈大小,默认值足够大,可满足普通操作
bulk_insert_buffer_size = 8M                          #可以适当调整参数至16MB~32MB,建议8MB
#myisam参数引擎相关myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover                                       #自动检查和修复没有适当关闭的MyISAM表
key_buffer_size = 16M                                #myisam索引buffer,只有key没有data

transaction_isolation = READ-COMMITTED              #事务隔离级别
tmp_table_size = 64M                                #设置内存临时表最大值
max_heap_table_size = 64M                           #独立的内存表所允许的最大容量
#innodb引擎参数相关
default-storage-engine=InnoDB                      #默认表的类型为InnoDB
innodb_old_blocks_time =1000                       #减小单次的大批量数据查询,默认为0,调整后性能提升80%                     http://www.cnblogs.com/cenalulu/archive/2012/10/10/2718585.html
innodb_flush_method = O_DIRECT                     #从innode刷新到磁盘,不经过系统write,fdatasync(默认),O_DSYNC,O_DIRECT http://blog.csdn.net/jiao_fuyou/article/details/16113403
innodb_additional_mem_pool_size = 16M              #设置InnoDB存储的数据目录信息和其他内部数据结构的内存池大小
innodb_buffer_pool_size = 51G                      #InnoDB使用一个缓冲池来保存索引和原始数据,官方建议物理内存的80%
innodb_data_file_path = ibdata1:128M:autoextend    #表空间
innodb_file_io_threads = 4                         #InnoDB中的文件I/O线程,通常设置为4,innodb除master线程外,还有insert buffer, log, read, write这4种线程,默认各有一个
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_thread_concurrency = 8                      #服务器有几个CPU就设置为几,建议用默认设置,一般设为8
innodb_flush_log_at_trx_commit = 2                 #设置为0就等于innodb_log_buffer_size队列满后再统一存储,默认为1
innodb_log_buffer_size = 16M                       #默认为1MB,通常设置为6-8MB就足够
innodb_log_file_size = 512M                        #确定日志文件的大小,更大的设置可以提高性能,但也会增加恢复数据库的时间
innodb_log_files_in_group = 3                      #为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3
innodb_max_dirty_pages_pct = 90                    #InnoDB主线程刷新缓存池中的数据
innodb_lock_wait_timeout = 120                     #InnoDB事务被回滚之前可以等待一个锁定的超时秒数
innodb_file_per_table = 1                          #InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间,0关闭,1开启
innodb_autoextend_increment = 256                  #这个参数的作用是控制innodb 共享表空间文件自动扩展的大小
https://blog.csdn.net/tuzhen007/article/details/9792577

 

转载于:https://www.cnblogs.com/wenxin1120/articles/11455321.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值