Ubuntu下sudo速度很慢原因及解决办法

本文介绍了解决Ubuntu Server 18.04 LTS中sudo命令响应缓慢的问题。通过修改/etc/hosts文件添加本地主机名记录,可以显著提高sudo命令的执行效率。

这个问题是最近装Ubuntu Server 18.04 LTS时遇到的,之前用Ubuntu Server 16.04 LTS并没有发现这个问题.

症状:sudo速度非常慢,提交命令之后大概需要10秒左右才有输入sudo密码或者开始运行。su命令症状相同。

原因:Ubuntu Server被设计成一种类似于分布式的操作系统网结构,允许/etc/sudoers中的成员不在本机上。从而sudo时会先从网络上寻找可能的sudoer然后才是本地. 而这10s左右的时间就是整个DNS流程的最长时间.

解决方案:首先输入hostname,得到本机当前的互联网名称(大概跟windows下的计算机名称差不多)。然后使用su或sudo打开/etc/hosts,添加一行:

127.0.0.1<TAB>计算机名<TAB>计算机名.localdomain

关闭并保存,sudo速度恢复正常

### 解决Ubuntu系统下百度网盘客户端下载速度慢的方法 #### 使用命令行工具调整网络设置 有时,通过修改系统的网络配置可以提高文件传输的速度。对于使用百度网盘的情况,在终端执行如下指令来优化TCP参数可能有所帮助: ```bash echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf sudo sysctl -p ``` 这些更改能够激活BBR拥塞控制算法,从而改善连接质量并加快数据交换速率[^1]。 #### 更换加速服务提供商 如果上述方法未能显著提升下载效率,则考虑利用第三方提供的加速器服务可能是必要的选择之一。部分服务商专门针对国内云存储平台设计了专属通道,能有效减少延迟并增加吞吐量。不过需要注意的是,这类方案通常不是免费的,并且应当谨慎挑选信誉良好的供应商以保障个人隐私安全[^2]。 #### 利用官方API接口编写脚本实现分片多线程下载 对于熟悉编程的人来说,可以直接基于百度开放平台所提供的SDK开发自定义的应用程序来进行更高效的资源获取操作。例如采用Python语言配合`requests`库完成并发请求任务,这样不仅限于单一链接点位,还可以充分利用带宽资源达到更好的效果。下面给出一段简单的示例代码用于说明这一思路: ```python import requests from concurrent.futures import ThreadPoolExecutor, as_completed def download_chunk(url, start_byte, end_byte, chunk_size=1024 * 1024): headers = {'Range': f'bytes={start_byte}-{end_byte}'} response = requests.get(url, headers=headers, stream=True) content = b'' for data in response.iter_content(chunk_size): if not data: break content += data return content def multi_thread_download(file_url, file_name, num_threads=5): r = requests.head(file_url) total_length = int(r.headers['content-length']) with open(file_name, 'wb') as fd: futures = [] bytes_per_thread = (total_length + num_threads - 1) // num_threads with ThreadPoolExecutor(max_workers=num_threads) as executor: for i in range(num_threads): start = i * bytes_per_thread end = min((i + 1) * bytes_per_thread - 1, total_length - 1) future = executor.submit(download_chunk, file_url, start, end) futures.append(future) for fut in as_completed(futures): fd.write(fut.result()) ``` 此段代码实现了基本的功能框架,实际应用时还需要处理更多细节问题如错误重试机制等[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值