首页
登录
搜索
登录
搜索
ZHappy
累计撰写
18
篇文章
累计收到
6
条评论
首页
栏目
首页
登录
【腾讯云】语音识别准确率高,支持多语种,多场景,限时特惠,最低14.9元起
上班好
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中
最新文章
2025-2-7
CentOS 性能调优指南
CentOS 性能调优指南 一、系统更新 在进行任何性能调优之前,确保系统是最新的,这样可以获得最新的安全补丁和性能改进。 # 更新系统软件包 sudo yum update -y 二、内核参数调优 内核参数的调整可以显著影响系统的性能,特别是在高并发场景下。编辑 /etc/sysctl.conf 文件并添加或修改以下参数: # 允许系统使用更多的内存作为文件系统缓存 vm.dirty_ratio = 60 vm.dirty_background_ratio = 2 # 调整 TCP 相关参数以优化网络性能 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 net.core.somaxconn = 8192 # 增加文件句柄限制 fs.file-max = 65536 应用新的内核参数: sudo sysctl -p 三、用户和进程资源限制 为了避免单个进程耗尽系统资源,需要调整用户和进程的资源限制。编辑 /etc/security/limits.conf 文件,添加以下内容: * soft nofile 65536 * hard nofile 65536 * soft nproc 65536 * hard nproc 65536 编辑 /etc/pam.d/login 文件,确保包含以下行: session required pam_limits.so 四、磁盘 I/O 优化 4.1 选择合适的文件系统 对于大多数场景,XFS 文件系统是一个不错的选择,它具有良好的性能和扩展性。如果需要重新格式化磁盘,可以使用以下命令: # 卸载磁盘 sudo umount /dev/sdX # 格式化磁盘为 XFS sudo mkfs.xfs /dev/sdX 4.2 调整磁盘调度算法 不同的磁盘调度算法适用于不同的场景。对于 SSD 磁盘,建议使用 noop 调度算法;对于 HDD 磁盘,deadline 或 cfq 可能更合适。可以通过以下命令临时调整调度算法: sudo echo noop > /sys/block/sdX/queue/scheduler 为了使设置永久生效,可以编辑 /etc/default/grub 文件,在 GRUB_CMDLINE_LINUX 行中添加 elevator=noop: GRUB_CMDLINE_LINUX="elevator=noop ..." 更新 GRUB 配置: sudo grub2-mkconfig -o /boot/grub2/grub.cfg 五、内存管理优化 5.1 调整交换空间使用 减少系统对交换空间的依赖可以提高性能。编辑 /etc/sysctl.conf 文件,添加或修改以下参数: vm.swappiness = 10 应用新的内核参数: sudo sysctl -p 5.2 使用透明大页(THP) 透明大页可以减少页表项的数量,提高内存访问效率。可以通过以下命令临时禁用 THP: echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag 为了使设置永久生效,可以编辑 /etc/rc.local 文件,添加以下内容: echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag 并确保 /etc/rc.local 文件具有可执行权限: sudo chmod +x /etc/rc.d/rc.local 六、网络优化 6.1 调整网络缓冲区大小 编辑 /etc/sysctl.conf 文件,添加或修改以下参数: net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.rmem_default = 16777216 net.core.wmem_default = 16777216 net.ipv4.tcp_rmem = "4096 87380 16777216" net.ipv4.tcp_wmem = "4096 65536 16777216" 应用新的内核参数: sudo sysctl -p 6.2 禁用不必要的网络服务 使用 systemctl 命令禁用不必要的网络服务,例如: sudo systemctl disable firewalld sudo systemctl stop firewalld 七、服务和应用程序优化 7.1 禁用不必要的系统服务 使用 systemctl 命令列出并禁用不必要的系统服务: # 列出所有服务 sudo systemctl list-unit-files --type=service # 禁用服务 sudo systemctl disable service_name 7.2 优化数据库服务(以 MySQL 为例) 编辑 /etc/my.cnf 文件,根据服务器的内存和负载情况调整以下参数: [mysqld] innodb_buffer_pool_size = 512M innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2 重启 MySQL 服务使配置生效: sudo systemctl restart mysqld 八、监控和调优反馈 使用系统监控工具(如 top、htop、iostat、vmstat、netstat 等)定期监控系统性能,根据监控结果进一步调整系统参数。例如,使用 iostat 监控磁盘 I/O 情况: iostat -x 1 九、CPU 性能优化 9.1 CPU 亲和性设置 对于多 CPU 或多核系统,合理设置 CPU 亲和性可以提高性能。通过将进程绑定到特定的 CPU 核心,可以减少 CPU 之间的上下文切换开销。 以 Nginx 为例,使用 taskset 命令将 Nginx 工作进程绑定到特定的 CPU 核心: # 查找 Nginx 工作进程的 PID ps -ef | grep nginx | grep worker # 将 PID 为 1234 的 Nginx 工作进程绑定到 CPU 核心 0 taskset -pc 0 1234 若要让 Nginx 启动时就绑定 CPU 核心,可以修改 Nginx 配置文件 /etc/nginx/nginx.conf,添加以下内容: worker_processes auto; worker_cpu_affinity auto; 9.2 调整 CPU 调度策略 根据不同的应用场景,可以调整 CPU 的调度策略。例如,对于实时性要求较高的应用,可以使用 SCHED_FIFO 或 SCHED_RR 调度策略。 使用 chrt 命令修改进程的调度策略和优先级: # 将 PID 为 1234 的进程设置为 SCHED_FIFO 调度策略,优先级为 99 chrt -f -p 99 1234 十、日志管理优化 10.1 日志轮转 日志文件会随着时间的推移不断增大,占用大量磁盘空间。使用 logrotate 工具可以定期轮转日志文件,避免磁盘空间被占满。 编辑 /etc/logrotate.conf 文件,根据需要调整日志轮转的周期、保留数量等参数: # 每周轮转一次日志文件 weekly # 保留 4 周的日志文件 rotate 4 # 压缩旧的日志文件 compress 还可以为特定的应用程序创建单独的日志轮转配置文件,例如 /etc/logrotate.d/nginx: /var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 nginx nginx sharedscripts postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript } 10.2 减少不必要的日志记录 在应用程序配置中,减少不必要的日志记录可以降低磁盘 I/O 开销。例如,在 Nginx 配置文件中,可以将日志级别设置为 error 或更高: error_log /var/log/nginx/error.log error; 十一、电源管理优化 11.1 禁用不必要的电源节省模式 在服务器环境中,禁用不必要的电源节省模式可以确保系统始终以最高性能运行。编辑 /etc/default/tuned 文件,将 ACTIVE_PROFILE 设置为 performance: ACTIVE_PROFILE=performance 重启 tuned 服务使配置生效: sudo systemctl restart tuned 11.2 调整 CPU 频率 使用 cpupower 工具可以调整 CPU 的频率。例如,将 CPU 频率设置为最高性能模式: sudo cpupower frequency-set -g performance 十二、存储系统优化 12.1 RAID 配置 如果服务器使用多个磁盘,可以通过 RAID 配置提高存储性能和数据冗余。常见的 RAID 级别有 RAID 0、RAID 1、RAID 5、RAID 10 等。 以创建 RAID 1 为例,使用 mdadm 工具: # 创建 RAID 1 阵列 sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb # 格式化 RAID 阵列 sudo mkfs.xfs /dev/md0 # 挂载 RAID 阵列 sudo mkdir /mnt/raid1 sudo mount /dev/md0 /mnt/raid1 12.2 LVM 优化 如果使用 LVM(逻辑卷管理),可以通过调整逻辑卷的条带化和镜像等参数来提高性能。例如,创建条带化的逻辑卷: # 创建物理卷 sudo pvcreate /dev/sdc /dev/sdd # 创建卷组 sudo vgcreate vg0 /dev/sdc /dev/sdd # 创建条带化的逻辑卷 sudo lvcreate -L 10G -n lv0 -i 2 -I 256 vg0 # 格式化逻辑卷 sudo mkfs.xfs /dev/vg0/lv0 # 挂载逻辑卷 sudo mkdir /mnt/lv0 sudo mount /dev/vg0/lv0 /mnt/lv0 十三、安全优化对性能的影响平衡 13.1 防火墙规则优化 虽然防火墙可以提高系统的安全性,但过多或不合理的防火墙规则会影响网络性能。定期清理不必要的防火墙规则,只开放必要的端口。 使用 firewalld 管理防火墙规则: # 查看当前防火墙规则 sudo firewall-cmd --list-all # 开放特定端口 sudo firewall-cmd --permanent --add-port=80/tcp # 重新加载防火墙规则 sudo firewall-cmd --reload 13.2 SELinux 策略调整 SELinux 可以增强系统的安全性,但严格的 SELinux 策略可能会影响应用程序的性能。可以根据实际情况调整 SELinux 的策略模式,例如将 SELinux 设置为宽容模式: # 临时将 SELinux 设置为宽容模式 sudo setenforce 0 # 永久将 SELinux 设置为宽容模式 sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
2025年-2月-7日
68685 阅读
0 评论
知识分享
2025-1-15
Linux磁盘处理教程
Linux磁盘处理教程 一、新增磁盘 物理连接磁盘 对于服务器等设备,关机后将新磁盘通过SATA、SAS等接口正确连接到服务器主板,并确保电源线连接牢固。对于虚拟机环境,在虚拟机设置中添加新的虚拟磁盘,设置好磁盘大小等参数。 识别新磁盘 重启服务器或虚拟机(在物理机上添加磁盘后通常需要重启以识别新硬件)。登录到Linux系统,使用lsblk命令查看系统是否识别到新磁盘。例如: lsblk 该命令会列出系统中所有的块设备,新磁盘通常会以sdb、sdc等形式出现(假设系统已有sda磁盘)。 二、标准分区 使用fdisk命令分区 以/dev/sdb为例,使用fdisk命令对其进行分区: sudo fdisk /dev/sdb 进入fdisk交互界面后,常用操作如下: 查看帮助:输入m,可查看fdisk的命令帮助信息。 新建分区:输入n。然后根据提示选择分区类型,如主分区(p)或扩展分区(e)。若选择主分区,接着输入分区号(1 - 4),起始扇区一般直接回车采用默认值,结束扇区可以指定大小(如+20G表示20GB大小的分区)或直接回车使用剩余全部空间。 设置分区类型:输入t,然后选择分区号,再输入对应的分区类型代码。例如,对于Linux文件系统,常用的83表示Linux分区。 查看分区表:输入p,可以查看当前磁盘的分区情况。 保存并退出:输入w,保存分区设置并退出fdisk。 格式化分区 假设我们在/dev/sdb上创建了/dev/sdb1分区,使用mkfs命令对其进行格式化。如果要格式化为ext4文件系统: sudo mkfs.ext4 /dev/sdb1 如果需要格式化为其他文件系统,如xfs,可使用: sudo mkfs.xfs /dev/sdb1 挂载分区 创建挂载点,例如创建/data目录用于挂载: sudo mkdir /data 挂载分区到挂载点: sudo mount /dev/sdb1 /data 为了使系统重启后仍能自动挂载该分区,需要编辑/etc/fstab文件。在文件末尾添加一行: /dev/sdb1 /data ext4 defaults 0 0 其中,/dev/sdb1是分区设备名,/data是挂载点,ext4是文件系统类型,defaults表示使用默认挂载选项,后面两个数字0 0分别用于指定是否备份和是否进行文件系统检查。 三、磁盘大于3T的处理 GPT分区表 传统的MBR分区表最大支持2.2TB的磁盘容量。当磁盘大于3T时,需要使用GPT(GUID Partition Table)分区表。 使用parted命令来进行GPT分区操作。例如,对/dev/sdb进行分区: sudo parted /dev/sdb 进入parted交互界面后,首先设置分区表类型为GPT: (parted) mklabel gpt 然后创建分区,例如创建一个占用整个磁盘的分区: (parted) mkpart primary 0% 100% 可以使用print命令查看分区情况,最后使用quit命令退出parted。 文件系统选择 对于大容量磁盘,xfs文件系统在处理大文件和高并发I/O方面表现较好。格式化分区时,可以选择xfs文件系统: sudo mkfs.xfs /dev/sdb1 挂载和设置自动挂载的步骤与标准分区中的操作一致。 四、LVM(逻辑卷管理) 创建物理卷(PV) 假设要将/dev/sdb和/dev/sdc两块磁盘用于LVM,首先将它们初始化为物理卷: sudo pvcreate /dev/sdb /dev/sdc 使用pvdisplay命令可以查看物理卷的详细信息: sudo pvdisplay 创建卷组(VG) 创建一个名为myvg的卷组,将刚才创建的两个物理卷添加到其中: sudo vgcreate myvg /dev/sdb /dev/sdc 使用vgdisplay命令查看卷组信息: sudo vgdisplay myvg 创建逻辑卷(LV) 从myvg卷组中创建一个名为mylv、大小为50GB的逻辑卷: sudo lvcreate -L 50G -n mylv myvg 其中,-L指定逻辑卷大小,-n指定逻辑卷名称。也可以使用-l参数以百分比的形式指定逻辑卷大小,例如-l 50%VG表示使用卷组空间的50%。 使用lvdisplay命令查看逻辑卷信息: sudo lvdisplay /dev/myvg/mylv 格式化和挂载逻辑卷 对创建好的逻辑卷进行格式化,例如格式化为ext4文件系统: sudo mkfs.ext4 /dev/myvg/mylv 创建挂载点并挂载逻辑卷: sudo mkdir /mydata sudo mount /dev/myvg/mylv /mydata 同样,为了系统重启后自动挂载,编辑/etc/fstab文件,添加如下内容: /dev/myvg/mylv /mydata ext4 defaults 0 0 扩展逻辑卷 假设卷组还有剩余空间,要将mylv逻辑卷扩展10GB: sudo lvextend -L +10G /dev/myvg/mylv 如果文件系统是ext4,还需要调整文件系统大小以识别新增加的空间: sudo resize2fs /dev/myvg/mylv 对于xfs文件系统,使用xfs_growfs命令: sudo xfs\_growfs /mydata 缩减逻辑卷(谨慎操作) 首先要确保文件系统处于未挂载状态,并且对文件系统进行检查。例如对于ext4文件系统: sudo umount /mydata sudo e2fsck -f /dev/myvg/mylv 然后缩减逻辑卷大小,假设将mylv缩减到40GB: sudo lvreduce -L 40G /dev/myvg/mylv 最后重新挂载逻辑卷: sudo mount /dev/myvg/mylv /mydata 五、磁盘管理的性能优化 I/O调度算法调整 Linux内核提供了多种I/O调度算法,如cfq(完全公平队列)、deadline(截止时间)、noop(电梯式)等。可以根据磁盘的使用场景选择合适的调度算法。 查看当前磁盘使用的调度算法: cat /sys/block/sda/queue/scheduler 临时修改调度算法为deadline(以sda为例): echo deadline | sudo tee /sys/block/sda/queue/scheduler 若要永久修改,需要编辑内核启动参数。对于使用GRUB的系统,在/etc/default/grub文件中添加或修改GRUB_CMDLINE_LINUX参数,例如: GRUB\_CMDLINE\_LINUX="elevator=deadline" 然后更新GRUB配置: sudo update - grub 磁盘缓存设置 可以通过调整dirty_ratio和dirty_background_ratio等参数来优化磁盘缓存。dirty_ratio表示当内存中脏数据达到系统内存的一定比例时,开始同步磁盘;dirty_background_ratio表示当内存中脏数据达到系统内存的一定比例时,内核开始在后台异步地将脏数据刷到磁盘。 查看当前设置: sysctl vm.dirty\_ratio sysctl vm.dirty\_background\_ratio 临时修改,例如将dirty_ratio设置为20%,dirty_background_ratio设置为10%: sudo sysctl -w vm.dirty\_ratio = 20 sudo sysctl -w vm.dirty\_background\_ratio = 10 若要永久修改,编辑/etc/sysctl.conf文件,添加或修改相应参数: vm.dirty\_ratio = 20 vm.dirty\_background\_ratio = 10 六、磁盘管理的故障排查 磁盘无法识别 检查硬件连接是否松动,在物理机上重新插拔磁盘的数据线和电源线。 查看系统日志,如/var/log/syslog,看是否有关于磁盘识别的错误信息。 对于虚拟机,检查虚拟机设置中磁盘是否正确添加。 分区挂载失败 检查/etc/fstab文件中挂载配置是否正确,确保设备名、挂载点、文件系统类型等信息准确无误。 检查文件系统是否损坏,对于ext4文件系统,可以使用e2fsck命令进行检查和修复: sudo e2fsck -f /dev/sdb1 对于xfs文件系统,使用xfs_repair命令: sudo xfs\_repair /dev/sdb1 LVM操作失败 查看/var/log/messages日志文件,了解LVM操作失败的具体原因。 确保卷组中有足够的空间进行逻辑卷的扩展或创建等操作。 检查物理卷是否正常,使用pvdisplay命令查看物理卷状态,若物理卷损坏,可能需要更换磁盘并重新构建LVM。
2025年-1月-15日
67232 阅读
0 评论
知识分享
2025-1-11
Docker将正在运行的容器打包成镜像
1、使用 docker commit 命令: 首先,使用 docker commit命令来创建一个新的镜像,该镜像基于正在运行的容器的当前状态。你需要知道正在运行的容器的ID或名称以及要为新镜像指定的名称。例如: docker commit CONTAINER_ID new_image_name 2、保存新镜像为文件: 接下来,你可以将新创建的镜像保存为文件。你可以使用 docker save命令将镜像保存为一个 tar 归档文件。例如: docker save -o new_image_name.tar new_image_name 3、将镜像传输到另一个设备: 将保存的镜像文件传输到另一个设备,可以通过网络传输、存储在共享位置,或使用其他方法将文件发送到目标设备上。 4、在另一个设备上加载镜像: 在另一个设备上,你可以使用 docker load命令加载镜像。首先将保存的镜像文件复制到目标设备上,然后运行以下命令: docker load -i new_image_name.tar
2025年-1月-11日
68757 阅读
0 评论
知识分享
2025-1-9
Linux运维常用命令和脚本指南
Linux运维常用命令和脚本指南 1. 系统信息查看命令 系统信息 uname -a # 查看系统完整信息 cat /etc/os-release # 查看系统版本 uptime # 查看系统运行时间和负载 hostname # 查看主机名 资源监控 top # 实时系统资源监控 htop # 更友好的top替代工具 free -h # 查看内存使用情况 df -h # 查看磁盘使用情况 du -sh * # 查看当前目录下各文件夹大小 iostat # 查看IO统计信息 vmstat # 查看虚拟内存统计信息 2. 进程管理 进程操作 ps aux # 查看所有进程 ps -ef | grep process_name # 查找特定进程 kill -9 pid # 强制终止进程 killall process_name # 终止同名进程 pgrep process_name # 查找进程ID 服务管理 systemctl start service_name # 启动服务 systemctl stop service_name # 停止服务 systemctl restart service_name # 重启服务 systemctl status service_name # 查看服务状态 systemctl enable service_name # 设置开机自启 3. 文件操作 文件管理 ls -la # 查看详细文件列表 cp -r source dest # 复制文件或目录 mv source dest # 移动文件或重命名 rm -rf file/dir # 删除文件或目录 chmod 755 file # 修改文件权限 chown user:group file # 修改文件所有者 文件查找 find / -name filename # 按名称查找文件 find / -type f -size +100M # 查找大于100M的文件 locate filename # 快速查找文件 grep -r "text" /path # 递归查找文本内容 4. 网络管理 网络配置 ifconfig # 查看网络接口信息 ip addr # 查看IP地址 netstat -tunlp # 查看网络连接状态 ss -tunlp # 另一个查看套接字状态的工具 route -n # 查看路由表 网络诊断 ping host # 测试网络连通性 traceroute host # 跟踪路由 nslookup domain # DNS查询 curl -I URL # 检查网站响应 wget URL # 下载文件 5. 实用运维脚本 系统监控脚本 #!/bin/bash # 监控系统资源使用情况 while true do echo "==== 系统监控 ====" date echo "CPU使用率:" top -bn1 | grep "Cpu(s)" | awk '{print $2}' echo "内存使用情况:" free -h echo "磁盘使用情况:" df -h sleep 60 done 日志清理脚本 #!/bin/bash # 清理超过30天的日志文件 LOG_DIR="/var/log" DAYS=30 find $LOG_DIR -type f -name "*.log" -mtime +$DAYS -exec rm -f {} \; echo "已清理${DAYS}天前的日志文件" 备份脚本 #!/bin/bash # 数据库备份脚本 DB_USER="username" DB_PASS="password" DB_NAME="database" BACKUP_DIR="/backup" DATE=$(date +%Y%m%d) # 创建备份目录 mkdir -p $BACKUP_DIR # 备份数据库 mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$DB_NAME-$DATE.sql # 压缩备份文件 gzip $BACKUP_DIR/$DB_NAME-$DATE.sql # 删除30天前的备份 find $BACKUP_DIR -type f -name "*.gz" -mtime +30 -delete 6. 安全相关 防火墙管理 firewall-cmd --list-all # 查看防火墙规则 firewall-cmd --add-port=80/tcp --permanent # 开放端口 firewall-cmd --remove-port=80/tcp --permanent # 关闭端口 firewall-cmd --reload # 重载防火墙配置 用户管理 useradd username # 创建用户 passwd username # 设置密码 usermod -aG group user # 将用户加入组 userdel -r username # 删除用户及主目录 7. 性能优化 系统优化 # 查看系统限制 ulimit -a # 修改系统限制(/etc/security/limits.conf) * soft nofile 65535 * hard nofile 65535 # 优化内核参数(/etc/sysctl.conf) net.ipv4.tcp_max_syn_backlog = 65536 net.core.somaxconn = 32768 性能分析工具 dstat # 系统资源统计 sar # 系统活动报告 perf # 性能分析工具 strace # 跟踪系统调用 8. 日志管理 日志查看 tail -f /var/log/messages # 实时查看系统日志 journalctl -u service_name # 查看服务日志 grep -r "error" /var/log/ # 搜索错误日志 zcat access.log.gz | grep "pattern" # 查看压缩日志 日志轮转配置 # /etc/logrotate.d/custom /var/log/custom.log { daily rotate 7 compress delaycompress missingok notifempty create 644 root root }
2025年-1月-9日
70121 阅读
0 评论
知识分享
2024-12-28
Docker常用操作命令-命令手册
Docker 命令手册 基础命令 镜像相关 docker images - 列出本地所有镜像 docker pull <镜像名称> - 拉取镜像 docker rmi <镜像ID/镜像名称> - 删除镜像 docker build -t <镜像名称> . - 使用当前目录的Dockerfile构建镜像 容器相关 docker ps - 查看运行中的容器 docker ps -a - 查看所有容器(包括已停止的) docker run <选项> <镜像名称> - 运行容器 -d: 后台运行 -p 宿主端口:容器端口: 端口映射 -v 宿主目录:容器目录: 挂载数据卷 --name: 指定容器名称 docker stop <容器ID/容器名称> - 停止容器 docker start <容器ID/容器名称> - 启动已停止的容器 docker rm <容器ID/容器名称> - 删除容器 docker logs <容器ID/容器名称> - 查看容器日志 进阶命令 容器管理 docker exec -it <容器ID/容器名称> /bin/bash - 进入容器终端 docker inspect <容器ID/容器名称> - 查看容器详细信息 docker stats - 查看容器资源使用情况 docker top <容器ID/容器名称> - 查看容器内运行的进程 网络相关 docker network ls - 列出所有网络 docker network create <网络名称> - 创建网络 docker network connect <网络名称> <容器名称> - 将容器连接到网络 docker network disconnect <网络名称> <容器名称> - 断开容器与网络的连接 数据卷管理 docker volume ls - 列出所有数据卷 docker volume create <数据卷名称> - 创建数据卷 docker volume rm <数据卷名称> - 删除数据卷 docker volume inspect <数据卷名称> - 查看数据卷详细信息 Docker Compose 命令 docker-compose up - 启动所有服务 docker-compose up -d - 后台启动所有服务 docker-compose down - 停止并删除所有服务 docker-compose ps - 查看服务状态 docker-compose logs - 查看服务日志 docker-compose restart - 重启所有服务 实用技巧 清理命令 docker system prune - 清理所有未使用的容器、网络、镜像(没有标签的)和构建缓存 docker system prune -a - 清理得更彻底,包括没有容器使用的镜像 docker volume prune - 清理未使用的数据卷 镜像导入导出 docker save <镜像名称> > image.tar - 导出镜像到文件 docker load < image.tar - 从文件加载镜像 docker export <容器ID> > container.tar - 导出容器到文件 docker import container.tar - 从文件导入容器 注意事项 在生产环境中使用 Docker 时,建议: 始终使用具体的镜像标签,避免使用 latest 定期清理不用的镜像和容器 注意数据持久化,重要数据要挂载到宿主机 安全建议: 不要在容器内运行重要服务 定期更新镜像以修复安全漏洞 限制容器的资源使用
2024年-12月-28日
65355 阅读
0 评论
知识分享
2024-12-18
Linux 中使用 pidstat 命令监控进程性能
一、安装 pidstat 命令 检查系统是否已经安装了 pidstat 打开终端,输入以下命令检查是否已经安装了 pidstat: pidstat -V 如果显示版本信息,说明已经安装,可以跳过安装步骤。如果提示找不到命令,那么继续下一步安装。 更新包管理器 在安装 pidstat 前,建议先更新系统的包管理器来获取最新的软件包列表。可以使用以下命令: 对于基于 Debian 或 Ubuntu 的系统: sudo apt update 对于基于 Red Hat、CentOS 或 Fedora 的系统: sudo yum update 安装 sysstat 包 pidstat 是 sysstat 工具包的一部分,因此我们需要安装 sysstat 来获取 pidstat。 对于基于 Debian 或 Ubuntu 的系统: sudo apt install sysstat 对于基于 Red Hat、CentOS 或 Fedora 的系统: sudo yum install sysstat 验证安装 安装完成后,验证 pidstat 是否已经成功安装: pidstat -V 你应该看到类似以下的输出,表示 pidstat 已经安装成功: sysstat version: 11.7.3 pidstat version: 11.7.3 二、使用 pidstat 监控进程 pidstat 可以监控多个指标,如 CPU 使用率、内存使用情况、I/O 操作等。接下来,我们将详细介绍如何使用不同的选项来监控进程。 1. 查看 CPU 使用情况 要查看所有进程的 CPU 使用情况,使用以下命令: pidstat 这将显示每个进程的 CPU 使用率,输出结果包括以下信息: PID: 进程 ID。 %usr: 用户态 CPU 使用率。 %system: 内核态 CPU 使用率。 %CPU: 总的 CPU 使用率。 如果你想在一段时间内持续监控进程的 CPU 使用情况,可以使用以下格式的命令: pidstat 2 5 这意味着每隔 2 秒刷新一次数据,共显示 5 次。可以根据需要调整刷新间隔和次数。 2. 查看指定进程的 CPU 使用情况 要查看某个特定进程的 CPU 使用情况,假设进程的 PID 为 1234,可以使用以下命令: pidstat -p 1234 这将只显示该进程的 CPU 使用情况。 3. 查看内存使用情况 要查看所有进程的内存使用情况,可以使用 -r 选项: pidstat -r 这将显示以下与内存相关的信息: minflt/s: 每秒次级页面错误数。 majflt/s: 每秒主页面错误数。 VSZ: 虚拟内存大小。 RSS: 驻留集大小。 同样,如果你想在一段时间内持续监控进程的内存使用情况,可以指定时间间隔和次数: pidstat -r 2 5 这意味着每隔 2 秒刷新一次内存使用情况,共显示 5 次。 4. 查看 I/O 操作 要监控进程的 I/O 操作,可以使用 -d 选项: pidstat -d 这将显示以下与 I/O 操作相关的信息: kB_rd/s: 每秒从磁盘读取的数据量。 kB_wr/s: 每秒写入磁盘的数据量。 kB_ccwr/s: 取消写入的千字节数(由于缓存)。 你也可以指定刷新间隔和次数: pidstat -d 2 5 这意味着每隔 2 秒刷新一次 I/O 操作数据,共显示 5 次。 5. 查看线程信息 pidstat 还可以监控每个进程的线程使用情况,使用 -t 选项可以显示线程级别的监控信息: pidstat -t 这会显示每个进程的线程详细信息,包括线程 ID (TID)、线程 CPU 使用率等。 6. 保存监控数据 如果你希望将监控数据保存到文件中,可以使用重定向符将输出写入文件。例如,将 CPU 使用情况保存到 cpu_usage.txt 中: pidstat 2 5 > cpu_usage.txt 这样你可以在稍后查看该文件中的数据。 三、结合其他选项 你可以组合使用 pidstat 的多个选项。例如,监控某个特定进程的 CPU、内存和 I/O 使用情况,假设进程 ID 为 1234,可以使用以下命令: pidstat -p 1234 -r -d 这将显示进程 1234 的 CPU、内存和 I/O 使用情况。 四、定时任务监控 如果你需要长时间监控进程,可以结合 cron 或 nohup 命令使用。例如,使用 nohup 运行以下命令,使其在后台持续运行,并将输出保存到 monitor.log: nohup pidstat 2 1000 > monitor.log & 这将每隔 2 秒记录一次系统的进程信息,持续 1000 次,并将输出记录到 monitor.log 文件中。你可以通过 tail -f monitor.log 实时查看日志文件的更新。
2024年-12月-18日
67959 阅读
0 评论
知识分享
2024-12-1
牛马打工人的逆袭:从平凡到非凡
牛马打工人的逆袭:从平凡到非凡 序章:沉默的奋斗者 每天早上七点,你从嘈杂的闹钟声中醒来,随手关掉,然后开始一场属于打工人的战斗。 挤满人的地铁里,你是站在角落里低头刷手机的那个;公司的工位前,你是默默完成KPI却不被察觉的那个。 是的,你是一头普通的“牛马”打工人,但平凡不代表平庸,沉默也不等于失败。故事的转折从一个决定开始。 第一步:找到自己的破局点 逆袭的第一步是发现自己的潜力。 问题:你每天的工作是否都在重复机械化的任务? 如果答案是“是”,那么,你需要开始思考: 我有什么可以学习的技能? 我是否可以优化现有流程,提出新方案? 我的长远目标是什么? 以小李为例,他是一名普通的行政文员,每天处理的都是重复的表格和文件。然而,他开始学习数据分析软件,用Python写小工具来提高效率,短短三个月后,他成为部门里最懂自动化的人,得到了晋升机会。 第二步:高效管理时间与精力 作为打工人,时间和精力是最稀缺的资源。 以下是一些高效管理的方法: 明确优先级:每天列出三件最重要的事,并集中精力完成。 善用碎片时间:利用通勤时间学习新知识,阅读行业报告或听播客。 拒绝无意义的社交:学会说“不”,将精力用在真正重要的事情上。 案例:阿明曾是一名快递员,在送快递的路上,他利用耳机学习电商课程。最终,他开了一家自己的网店,现在月入过万。 第三步:持续深耕与迭代 想要逆袭,不仅要努力,还要有策略地努力。 深耕专业技能:不断学习,让自己在某个领域成为不可替代的专家。 培养核心竞争力:比如沟通能力、解决问题的能力或团队领导力。 勇于尝试新领域:在机会面前,不要害怕失败,勇敢跨界。 小王从一名普通的客服专员,通过学习产品设计,逐渐转型成为一名UI设计师。逆袭的关键在于他的学习毅力和对未来趋势的敏锐洞察。 逆袭后的新篇章 当某一天,你走进公司,发现自己的工位已经从角落搬到了独立办公室,当你与同事谈话时,他们开始对你投来崇拜的目光。那时的你会明白,所有的努力和坚持,都是值得的。 从“牛马”到“赢家”,这条路并不平坦,但你从未退缩,因为你知道: 平凡的起点不能定义一个人,只有不断攀登,才能拥有属于自己的高峰。 结语:每个人都可以逆袭 不要害怕自己平凡的背景,也不要畏惧别人的嘲笑。逆袭的道路上,每一步都值得铭记。 你的故事,可能就是下一个打工人的灯塔。加油,未来属于每一个坚持努力的人! 让我们一起,从牛马变王者!
2024年-12月-1日
68034 阅读
1 评论
牛马文章
1
2