Linux中的1024——给Linux工程师的节日祝福

过节了!过节了!过节了!1024!

Linux阅码场——一个不断提供高质量Linux原创技术文章的公众号给您拜年了!哦,no,给您送上节日的祝福。我和我的代码,一刻也不能分割。无论我走到哪里,都流出一首赞歌。我歌唱每一条河,我歌唱Linux中的1024。

基于二进制的原理,程序员通常会把1024当做一个整数而不是1000。程序员这个行业处理“bit”,当然这个行业“苦逼”,这也让我轻松地记住了一个单词——bitter。bitter的意思就是“苦的”,bit后面加er后缀,是人,这里只是会意记单词。

er通常表明比较loser的人,英语里面一般地位崇高的人,后缀是-or。比如

carpenter  木匠 vs. doctor 博士

programmer 程序员 vs. professor 教授

coder码农 vs. director 总监

为啥咱们不叫programmor,不叫codor,原因应该是很清楚了。人艰不拆,当然我们也不要妄自菲薄,这里仅仅是开一个玩笑,让大家在自己的节日里比较欢乐。

作为一个Linux程序员,我们Linux中的1024有哪些呢?

Linux中的1024

640?wx_fmt=png

CFS调度算法中nice值是0的进程的权重;

CPU CGroup一般的初始权重;

ext4文件系统的block size可以是1024;

普通用户不能用1024以下的网络端口;

select的fd_set中的文件最多不超过1024;

进程能打开的文件数量限制1024

....


CFS调度算法中nice值是0的进程的权重


640?wx_fmt=png

在CFS调度算法中,

vruntime += delta* NICE_0_LOAD/ se.weight

NICE_0_LOAD就是1024,所以nice是0的进程,虚拟时间轴和物理时间轴是匹配的。


CPU CGroup一般的初始权重


当采用CPU CGroup的时候,这个CGroup会自动获得一个权重,它的初始值一般为1024。

640?wx_fmt=png

这代表了一个群与另外一个群在竞争CPU时候的权重, cpu.shares越大,此群享有更多的竞争优势。


ext4文件系统的block size可以是1024


mkfs.ext4一般会把小分区的block size格式化为1024,大分区的block size格式化为4096。block size是硬盘在文件系统里面分配的最小单元。

这点从/etc/mke2fs.conf文件可以看出:

640?wx_fmt=png

当然,对于一个分区,我们也可以直接用mkfs.ext4 -b 1024来指定分区block size是1024。譬如:

640?wx_fmt=png

下面我们用dumpe2fs /dev/vmem_diska命令观察一下:

640?wx_fmt=png


普通用户不能用1024以下的网络端口


譬如,下面代码从端口如果是1022,程序运行时bind会报错:

640?wx_fmt=png

打印的出错信息如下:

Error: : Permission denied

但是我们如果用sudo跑,是可以的:

640?wx_fmt=png

当然,普通用户可以直接用1024以上的端口:

640?wx_fmt=png

改为8000后,普通用户跑上面的程序也不会出现权限错误。


select支持的文件数量不超过1024

Linux的select中的fd_set的数量最多不超过1024。

       int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout);

这多一点可以从select的man page看出:

640?wx_fmt=png

poll和epoll则无此限制。不过,鉴于select的实现效率在fd数量庞大的情况下如此低下,真的达到1024个fd的时候,很可能也根本不适合用select,而适合epoll。


进程打开文件的最大数量通常限制为1024

这一点通过ulimit -a命令可以看出,当前用户的每个进程只能最多打开1024个文件:

640?wx_fmt=png

我们可以通过ulimit -n xxx进行更改。



相信Linux里面还有很多的1024,我们主要从进程、文件系统、网络子系统里面抽取了部分案例,聊供诸君一笑。

祝Linux阅码场的用户朋友们节日快乐!

祝有情人终成眷属!!

愿世界和平!!!

查看我们精华技术文章请移步:


扫描下方二维码关注"Linux阅码场"

640?wx_fmt=png


感谢您的耐心阅读,请随手转发一下或者点个“在看”吧~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋宝华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值