首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面试问:5 亿整数的大文件,排个序 ?

    1.分 内存中维护一个极小的核心缓冲区memBuffer,将大文件bigdata按行读入,搜集到memBuffer满或者大文件读完时,对memBuffer中的数据调用内排进行排序,排序后将有序结果写入磁盘文件...循环利用memBuffer直到大文件处理完毕,得到n个有序的磁盘文件: ? 2.合 现在有了n个有序的小文件,怎么合并成1个有序的大文件? 把所有小文件读入内存,然后内排? (⊙o⊙)… no!...文件1的最小值:3 , 排在文件1的第1行 文件2的最小值:2,排在文件2的第1行 文件3的最小值:1,排在文件3的第1行 那么,这3个文件中的最小值是:min(1,2,3) = 1 也就是说,最终大文件的当前最小值...上面拿出了最小值1,写入大文件....第二回合: 文件1的最小值:3 , 排在文件1的第1行 文件2的最小值:2,排在文件2的第1行 文件3的最小值:5,排在文件3的第2行 那么,这3个文件中的最小值是:min(5,2,3) = 2 将2写入大文件

    46810

    面试问傻!5亿个数大文件怎么排序?

    曾经问傻的一道面试题分享给你: 给你1个文件bigdata,大小4663M,5亿个数,文件中的数据随机,如下一行一个整数: 6196302 3557681 6121580 2039345 2095006...内存极少的情况下,利用分治策略,利用外存保存中间结果,再用多路归并来排序; map-reduce的嫡系. 1.分 内存中维护一个极小的核心缓冲区memBuffer,将大文件bigdata按行读入,搜集到...memBuffer满或者大文件读完时,对memBuffer中的数据调用内排进行排序,排序后将有序结果写入磁盘文件bigdata.xxx.part.sorted....循环利用memBuffer直到大文件处理完毕,得到n个有序的磁盘文件: 2.合 现在有了n个有序的小文件,怎么合并成1个有序的大文件? 把所有小文件读入内存,然后内排? (⊙o⊙)… no!...上面拿出了最小值1,写入大文件.

    50610

    C盘的剩余空间对开机速度有影响吗?

    C盘作为系统盘,如果剩余 空间不足肯定会影响到开机的速度。所以一般在装机的时候C盘的空间预留的稍微大一些,就是为了腾出足够多的剩余空间,这样安装的文件不至于占满整个C盘空间。 ?...其实计算运行的速度基本上都归结于这两个原因,回到系统C盘的问题,如果空间不足了就会让系统安装的应用加载速度变慢,特别是一些大型的软件运行的时候还需要借助一部分的硬盘空间,空间不够加载的时候就会变得卡顿,如果系统盘安装的应用过多...当然现在的操作系统本身对于系统的配置也提出了极高的要求,开机的时候很多功能已经预加载到系统内存了 ,开机之后首先就是几个G内存已经吃掉了。 ?...平时在使用电脑的过程中注意一些细节也会避免系统盘提早占满,在安装应用软件的时候尽量把安装位置放在C盘之外的地方,这样子容易减少对系统盘的负担,而且减少应用开机启动的数量,同时不间断的对于系统进行杀毒和木马的处理

    3.8K40

    Kubernetes之容器数据写满磁盘解决方法

    磁盘写满引发的后果 容器数据磁盘写满造成的后果: Pod 不能删除 (一直 Terminating) Pod 不能创建 (一直 ContainerCreating) 磁盘写满分两种情况: 磁盘空间全部使用完...# 系统盘占满 $ df -Th 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/vda1 ext4 50G 50G 0G 100%.../ /dev/vdb1 ext4 100G 10G 90G 10% /data 磁盘 Inode 全部使用完 # 数据盘 Inode 被占满 $ df -i 文件系统...Inode 已用(I) 可用(I) 已用(I)% 挂载点 /dev/vda1 3276800 3276800 0 100% / 判断磁盘写满方法 下面命令能快速的排查磁盘占满原因:...k8s垃圾回收策略 节点运行 images 定时清理脚本 可写层量大导致磁盘写满: 优化程序逻辑,不写文件到容器内或控制写入文件的大小与数量 具体优化方法 配置 Docker日志轮转,数据目录不要存放在系统盘

    2.9K10

    陌溪的小破站,又㕛叒叕被打挂了!

    难道是 while(true){sendGet(https://www.moguit.cn/)} 蘑菇一个人恶作剧搞挂了 ?...最简单的理解:3000 台电脑同时访问你的网站,然后开 3 个浏览器,按住 F5 是一种什么样的体验,有点特点的,死循环请求搜索接口,批量访问大文件等等!...UDP 是一种连接的协议,而且它不需要用任何程序建立连接来传输数据。当攻击者随机地向受害系统的端口发送 UDP 数据包的时候,就可能发生了 UDP 淹没攻击。...我准备了两台测试机器,两台机器硬件配置和系统配置一模一样,克隆出来的,两台机器配置均为 CPU:2核心 E52696V2 内存:4G 带宽:进 100M,出 20M 系统盘:30G SSD 两台机器均部署了...:23.224.85.208,进行简易 CC 压测(最简单的模拟访问) 存活时间15秒,第一波攻击直接挂了,带宽直接占满,因为没有业务处理所以 CPU 和 IO 并无太大变化,但是带宽已经满了这个时候访问页面已经是无法访问了

    1.3K30

    linux之lsof使用技巧

    列出被删除但占用空间的文件 在生产环境中,我们可能会使用df命令看到磁盘空间占满了,然而实际上又很难找到占满空间的文件,这常常是由于某个大文件被删除了,但是它却被某个进程打开,导致通过普通的方式找不到它的踪迹...这个时候就可以根据实际情况分析,到底哪些文件可能过大但是却被删除了,导致空间仍然占满。...查看当前文件哪些进程打开 第一个终端 > vi rumenz.sh 第二个终端 > tail -f rumenz.sh 第三个终端lsof rumenz.sh COMMAND PID USER...查看某个目录文件被打开情况 > lsof +D ./ 递归处理 显示目录下进程开启的文件 > lsof +d /usr/local/ 查看当前进程打开了哪些文件 > lsof -c 进程名 查看某个端口被占用情况

    45900

    linux之lsof使用技巧

    列出被删除但占用空间的文件 在生产环境中,我们可能会使用df命令看到磁盘空间占满了,然而实际上又很难找到占满空间的文件,这常常是由于某个大文件被删除了,但是它却被某个进程打开,导致通过普通的方式找不到它的踪迹...这个时候就可以根据实际情况分析,到底哪些文件可能过大但是却被删除了,导致空间仍然占满。...查看当前文件哪些进程打开 第一个终端 > vi rumenz.sh 第二个终端 > tail -f rumenz.sh 第三个终端lsof rumenz.sh COMMAND PID USER...查看某个目录文件被打开情况 > lsof +D ./ 递归处理 显示目录下进程开启的文件 > lsof +d /usr/local/ 查看当前进程打开了哪些文件 > lsof -c 进程名 查看某个端口被占用情况

    65700

    彻底解决mysql报错:1030, ‘Got error 28 from storage engine‘

    恕我直言,网上文章千篇一律,没一个能解决的,全是说清一下内存就好了,但是并没有教不会的小白清理… = = 这个问题确实是服务器系统盘满了,mysql指定的临时文件目录满掉,大概就是这个意思....下面解决/dev/vda1系统盘满了,其实我压根不知道/dev/vda1这在哪,是什么,后来了解这是 virtio-block 类型的设备。...-sh * 看哪个目录占用空间大,有的高达十几个G,那么就要盯住这个目录了 2、cd 占内存大的目录,继续 du -sh * 发现data目录居然15G,进入data目录:cd data 然后查找大文件...也可以查询文件夹占用显示该目录占用空间的总和: 使用:du -h –max-depth=1 /路径 举例:du -h –max-depth=1 /var 这是查看哪个文件夹占目录内存最大 如果想定位大文件...echo “” > catalina.out 一般这个日志文件比较大. 5、如果是软件包太大的话,不需要的可以卸载 执行卸载 rpm -e 软件名 或者删除 rm -rf 文件夹名 6、大文件删除的差不多了

    2.4K30

    linux之lsof使用技巧

    列出被删除但占用空间的文件 在生产环境中,我们可能会使用df命令看到磁盘空间占满了,然而实际上又很难找到占满空间的文件,这常常是由于某个大文件被删除了,但是它却被某个进程打开,导致通过普通的方式找不到它的踪迹...这个时候就可以根据实际情况分析,到底哪些文件可能过大但是却被删除了,导致空间仍然占满。...查看当前文件哪些进程打开 第一个终端 > vi rumenz.sh 第二个终端 > tail -f rumenz.sh 第三个终端 > lsof rumenz.sh COMMAND PID USER...查看某个目录文件被打开情况 > lsof +D ./ 递归处理 显示目录下进程开启的文件 > lsof +d /usr/local/ 查看当前进程打开了哪些文件 > lsof -c 进程名 查看某个端口被占用情况

    47220
    领券