个人日志

如何从 Bash shell 命令行 变量中去除空格?

一个简单的答案是:

echo "   lol  " | xargs

Xargs会为你做修剪。这是一个命令/程序,没有参数,返回修剪后的字符串,就这么简单!

注意:这不会删除所有内部空间,因此"foo bar"保持不变;它不会变成"foobar"。但是,多个空格将被压缩为单个空格,因此"foo bar"将变为"foo bar". 此外,它不会删除行尾字符。

阿里云服务器选固定带宽划算还是按使用流量更便宜?来计算一下!

阿里云服务器公网带宽计费模式按固定带宽划算还是按使用流量划算?带宽按量和固定如何选择?羊毛之家认为很好选择,根据实际应用的流量情况计算一下就知道了,另外阿里云服务器带宽计费模式后期也是可以更改的,所以不用那么纠结,羊毛之家分享大家阿里云带宽价格及计费方式帮大家计算一下:

带宽计费模式按固定带宽和按使用流量

阿里云服务器带宽计费模式分为“按固定带宽”和“按使用流量”两种计费模式,…

如何在Linux操作系统(Wayland)上修复Google Chrome屏幕共享黑屏?

如果您是 Linux 用户,那么您可能至少使用过一次 GNOME 桌面环境。

最新的 GNOME DE(桌面环境)现在使用 Wayland。虽然可以删除 Wayland 并根据需要选择 Xorg,但大多数用户开始使用 Wayland 作为他们的日常驱动程序。

如果您仍然使用 Chrome 或 Chromium 浏览器,您在屏幕共享期间经常会遇到黑屏问题。…

    

在 Ubuntu 中完全卸载 MySQL

虽然Ubuntu中的包管理与当今大多数 Linux 操作系统一样,使得安装、升级和删除软件变得极其容易,但有些软件本质上有点复杂,包含多个配置文件夹等。

一种这样的复杂软件是MySQL 服务器。卸载 MySQL 服务器并不像通常那样简单地相当于运行“ apt purge ”。您可以按照几个小步骤从您的 Ubuntu 机器上完全卸载 MySQL 服务器。它们如下:

备份所有 MySQL 数据库

如果您没有在MySQL中创建任何数据库,则可以跳过此步骤。如果有,在从系统中删除 MySQL 服务器之前,确保备份所有数据库,以便在另一个系统上重新安装它或想在现有服务器上使用数据库时,您可以简单地恢复它们。

在此处了解如何在 MySQL 中备份数据库 –如何从命令行备份所有 MySQL 数据库

在 Ubuntu 中删除 MySQL 服务器

MySQL

Linux 性能优化

性能优化

性能指标

高并发和响应快对应着性能优化的两个核心指标:吞吐延时

图片

  • 应用负载角度:直接影响了产品终端的用户体验
  • 系统资源角度:资源使用率、饱和度等

性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快,无法支撑更多的请求。 性能分析实际上就是找出应用或系统的瓶颈,设法去避免或缓解它们。

  • 选择指标评估应用程序和系统性能
  • 为应用程序和系统设置性能目标
  • 进行性能基准测试
  • 性能分析定位瓶颈
  • 性能监控和告警

对于不同的性能问题要选取不同的性能分析工具。 下面是常用的Linux Performance Tools以及对应分析的性能问题类型。

图片

到底应该怎么理解“平均负载”

平均负载:单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。它和我们传统意义上理解的CPU使用率并没有直接关系。

其中不可中断进程是正处于内核态关键流程中的进程(如常见的等待设备的I/O响应)。不可中断状态实际上是系统对进程和硬件设备的一种保护机制。

平均负载多少时合理

实际生产环境中将系统的平均负载监控起来,根据历史数据判断负载的变化趋势。当负载存在明显升高趋势时,及时进行分析和调查。 当然也可以当设置阈值(如当平均负载高于CPU数量的70%时)

现实工作中我们会经常混淆平均负载和CPU使用率的概念,其实两者并不完全对等:

  • CPU密集型进程,大量CPU使用会导致平均负载升高,此时两者一致
  • I/O密集型进程,等待I/O也会导致平均负载升高,此时CPU使用率并不一定高
  • 大量等待CPU的进程调度会导致平均负载升高,此时CPU使用率也会比较高

平均负载高时可能是CPU密集型进程导致,也可能是I/O繁忙导致。具体分析时可以结合mpstat/pidstat工具辅助分析负载来源

CPU

CPU上下文切换(上)

CPU上下文切换,就是把前一个任务的CPU上下文(CPU寄存器和PC)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后再跳转到程序计数器所指的位置,运行新任务。其中,保存下来的上下文会存储在系统内核中,待任务重新调度执行时再加载,保证原来的任务状态不受影响。

按照任务类型,CPU上下文切换分为: