Linux
子晞
博闻强记,多思多问,取法乎上,持之以恒。欢迎转载,转载请注明出处 http://blog.csdn.net/southflow
展开
-
samba文件权限受了限制
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <! /* Style原创 2009-09-17 19:28:00 · 1257 阅读 · 0 评论 -
名词解释“缓存穿透”和“缓存雪崩”
1. 缓存穿透:查询一个必然不存在的数据。比如文章表,查询一个不存在的id,每次都会访问DB,如果有人恶意破坏,很可能直接对DB造成影响。解决办法:对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。2.缓存失效:如果缓存集中在一段时间内失效,DB的压力凸显。这个没有完美解决办法,但可以分析用户行为,尽量让失效时间点均匀分布。当发生大量的缓存穿透,例如转载 2013-07-03 14:40:51 · 1783 阅读 · 0 评论 -
Erlang并发机制 – 消息传递
Erlang系统中,进程之间的通信是通过消息传递来完成的。消息使用Pid ! Message的形式发送,通过receive语句获取。每个Erlang进程都有用来存储传入消息的信箱。当一个消息发送的时候,它会从发送进程中拷贝到接收进程的信箱,并以它们到达的时间次序存储。消息的传递是异步的,一个发送进程不会在发送消息后被暂停。 上面提到发送消息时,会在两个进程之间存在消息复制转载 2013-06-23 19:34:39 · 2417 阅读 · 0 评论 -
一些读书笔记(4)
1. UDP是面向无连接的,那么,我为什么要在它的socket上建立连接呢?UDP调用connect会有三次捂手过程吗?UDP调用sendto后,返回成功,并没有意味着数据发送到对端,而是仅仅表示接口输出队列具有存放sendto导致的数据包的空间,即使不可达对端。不可达到对端的ICMP错误,并不是sendto返回,而是为一个异步错误。为了解决这个问题,解决的办法是,只有在一个已经connect的U原创 2013-06-17 23:23:13 · 748 阅读 · 0 评论 -
ps查看进程的stat状态
These are indeed the process states. Processes states that ps indicate are:D Uninterruptible sleep (usually IO)R Running or runnable (on run queue)S Interruptible sleep (waiting for an event to co转载 2013-06-17 14:18:26 · 1581 阅读 · 0 评论 -
一些读书随笔(1)
1. 看了进程之间通信,想消息队列与共享内存区别在哪里?因解决什么问题而共同需要他们,而不能合并为一,因之前缺少这方面的经验,问的问题可能比较简单?但不妨碍对于问题入口的思考。他们都可以用于进程之间通信,但是我要区别我读到了主要表现在这几个方面:a. 效率,共享内存读写效率要高于消息队列,共享内存主要是节省来内存的数据交换,减少通过内核传递数据的次数。b. 同步,消息队列具有固有的同步开销,共享内原创 2013-06-15 09:19:55 · 776 阅读 · 0 评论 -
一些读书随笔(2)
1. 多个人做一件事情的时候,可能需要同步。如果不考虑执行顺序的情况下,每次得到的结果一样的,那么无需同步,但是,如果按照不同的执行顺序,得到不同的结果,而且其中只有部分结果是正确的,那么需要同步。如食堂排队,打饭员每次只能为一个人打饭打菜,如果一次为多个人打饭打菜可能会乱,这是不希望看到的,所以同步的办法是排队。从程序的角度分析,打饭员是临界资源,每次只能为一个人服务。在多线程环境下,用互斥锁实原创 2013-06-15 15:54:03 · 596 阅读 · 0 评论 -
设置用户ID的程序调用system危险
system函数实现调用了fork, exec和waitpid。如果调用system的程序设置了用户ID,那么在fork,exec后的进程,保存了父进程的权限。当一个进程执行某个程序时,如果程序设置来用户ID,那么进程的有效用户ID将被设置为程序文件的实际用户ID,那么进程将拥有该文件拥有者的权限。这个权限在调用system后,被子进程继承来下来。例如:systest.cint main(原创 2013-06-11 20:37:25 · 1133 阅读 · 0 评论 -
Linux多线程,线程的分离与结合
2)线程的分离与结合 在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了线转载 2013-06-03 16:13:52 · 694 阅读 · 0 评论 -
几个容易混淆的重定向
进程预定义了三个文件描述符,分别是STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO。分别是标准输入,标准输出,标准错误输出。例如:$cat file1 默认输出是标准输出$tee 默认从标准输入读入$noexistcommand现在我们不想对上面三个输入输出走默认的途径,例如我要输出到文件中去;我要从文件中读取,而不是标准输入;原创 2013-06-10 21:53:46 · 806 阅读 · 0 评论 -
Linux重定向
1. 什么是标准文件 shell为每个命令打开三个文件(流),用于 读取输入——标准输入——键盘 输出结果——标准输出——显示屏(控制台) 输出错误消息——标准错误——显示屏(控制台) 当shell发现命令行中存在特殊字符(,|)时,shell就把流从它的默认设备上断开,连接到磁盘文件或另一转载 2013-06-10 17:30:50 · 865 阅读 · 0 评论 -
文件共享
书中提到内核用三种结构描述打开的文件,一是打开的文件描述符表,二是文件表,三是v节点。三者之间的关系具体见书中描述,他们三者通过指针相连接。1. 同个文件打开多次:open 每打开一次生成新的文件fd和文件表,因具有不同的文件表,文件状态和偏移是分开的。对于下面情况,第二次写入将对第一次写入产生影响。main(){ int fd1, fd2; fd1 = open("f原创 2013-06-10 17:00:07 · 864 阅读 · 0 评论 -
I/O复用简述
<br /> 当应用程序打开文件成功时,内核向应用程序返回一个fd,称之为文件描述符,那么应用程序通过文件描述符通过内核来访问这个文件,对文件进行I/O操作。那么有种场景是一个进程需要同时处理多个文件描述符,每个文件描述符对应一个I/O处理,那么进行需要知道那个I/O是否满足条件,或称之为准备好,例如某个fd已经准备准备好被读,某个fd已经准备好接收写入。没有IO复用之前,进程会堵塞在单个I/O操作上,但是有了I/O复用之后,通过select调用监听多个文件描述符,当前其中一个或多个文件描述符对应的原创 2011-03-08 09:45:00 · 678 阅读 · 0 评论 -
Linux服务器性能评估
Linux服务器性能评估 一、影响Linux服务器性能的因素 1. 操作系统级CPU内存磁盘I/O带宽网络I/O带宽 2. 程序应用级 二、系统性能评估标准 影响性能因素影响性能因素评判标准好坏糟糕CPUuser% + sys%user% + sys%= 8转载 2013-08-11 00:33:54 · 827 阅读 · 0 评论