Welcome to SysTutorials! Here you can find posts on Linux, Software, Programming and Web topics.

SysTutorials Keywords

Tutorials: Latest | Latest updated | Most viewed | All
QAs: Answered QAs
Manuals: Linux Man Pages | Linux Packages Manuals

Latest SysTutorials tutorials

To get updated when new posts are published? Subscribe here.

  • Posted on Thursday September 21, 2017
    Technology Hibernate Envers is the frameworks for auditing entities. As the name suggests Hibernate Envers is developed on top of Hibernate, it will on Hibernate and Hibernate implemented JPA. Hibernate Envers provides easy auditing, versioning solution for entity classes. Advantages of Hibernate Envers:Auditing of all mappings defined by JPA specification. Auditing Hibernate specific mappings which extends the JPA specification. Logging data for each revision using revision entity. » Read more Continue Reading »
  • Posted on Monday September 18, 2017
    Introduction In this tutorial, we will be learning as how to deploy .NET Core 2.0 MVC web application on Microsoft Public Cloud i.e. Microsoft Azure, using Microsoft Visual Studio 2017 v15.3 For novice Cloud developers, aspiring .NET / Cloud architects, and all other IT professionals associated with the .NET Core framework & Cloud computing, especially with Microsoft Azure, this tutorial will explain the importance and capabilities of newly released . » Read more Continue Reading »
  • Posted on Saturday September 09, 2017
    The encoding of x86 and x86-64 instructions is well documented in Intel or AMD’s manuals. However, they are not quite easy for beginners to start with to learn encoding of the x86-64 instructions. In this post, I will give a list of useful manuals for understanding and studying the x86-64 instruction encoding, a brief introduction and an example to help you get started with the formats and encodings of the x86-64 instructions. » Read more Continue Reading »
  • Posted on Saturday September 09, 2017
    The metadata checkpointing in HDFS is done by the Secondary NameNode to merge the fsimage and the edits log files periodically and keep edits log size within a limit. For various reasons, the checkpointing by the Secondary NameNode may fail. For one example, HDFS SecondaraNameNode log shows errors in its log as follows. 2017-08-06 10:54:14,488 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint java.io.IOException: Inconsistent checkpoint fields. » Read more Continue Reading »
  • Posted on Sunday August 27, 2017
    Introduction In general, if we want to debug Linux Kernel, there are lots of tools such as Linux Perf, Kprobe, BCC, Ktap, etc, and we can also write kernel modules, proc subsystems or system calls for some specific debugging aims. However, if we have to instrument kernel to achieve our goals, usually we would not like to pay more efforts like above solutions since we’d like to achieve our aims quickly and easily. » Read more Continue Reading »
  • Posted on Saturday August 26, 2017
    Introduction As we know, network subsystems are important in computer systems since they are I/O systems and need to be optimized with many algorithms and skills. This article will introduce how QEMU/KVM [2] network part works. In order to put everything simple and easy to understand, we will begin with several examples and then understand how it works internally. Examples In this example, we will use TAP device [1] as QEMU/KVM host network device driver and VirtIO driver will be used to send/receive network packets/data between Host OS and Guest OS. » Read more Continue Reading »
  • Posted on Sunday August 20, 2017
    Abstract Most popular task monitor systems (such as top, iotop, proc, etc) can only get tasks’ disk I/O information like tasks’ I/O utilization percentage every seconds due to kernel timer/tick frequency and high time cost of system interfaces. This article presents I/O Microscopy, a new way to get tasks’ disk I/O information with high accuracy. Experiments show that I/O microscopy can filter out I/O intensive tasks effectively. » Read more Continue Reading »
  • Posted on Saturday August 12, 2017
    With Google algorithm becoming more intelligent with each passing day, the margin for errors has significantly reduced over the past decade. Back in the day, you might get away with keyword stuffing but today, the same offense will strike off your website from Google search engine results. No one wants that, right. To save you from such a situation, here are ten common mistakes that most casual followers of the industry are making but should not. » Read more Continue Reading »
  • Posted on Tuesday July 25, 2017
    The word “viral” has received a lot of attention over the last few years and is applied to different types of content to describe how quickly it has spread and gained popularity. Many times, you’ll hear people speak about their idea and how fast it will spread while assuming that it will “go viral”, but they never seem to understand how they’re going to make it go viral. » Read more Continue Reading »
  • Posted on Friday May 12, 2017
    Call forwarding is useful if you are expected to be unavailable for receiving calls or lose cell phone coverage for some time. Call forwarding is not something that is "new" to modern phones. It is a feature which is invented in 1960s (the patent expired in 1980) of some telephone switching systems. But with iPhone/iOS, there is a convenient call forwarding feature in iOS for you to set up call forwarding to forward calls to a landline or other phone by its number or disable the call forwarding. » Read more Continue Reading »
  • Posted on Thursday April 20, 2017
    HTML supports many characters/symbols such as mathematical symbols, and currency symbols. They are not present on a normal keyboard. And some of these characters may have special meanings for formatting text. To add such characters / symbols to an HTML text, you can use an HTML entity name or an entity number in decimal or hexadecimal. This post list many special Characters in HTML as a friendly reference. » Read more Continue Reading »
  • Posted on Tuesday April 18, 2017
    From a small business owner, a blogger, a student or individual with a personal project, the need to create websites has never been more prominent. Having a basic understanding of HTML and canvas knowledge can be helpful, and it is simple to master. The thought of learning to code and programming may seem a long and daunting task, but some people may be surprised to know that it need not be as scary as it sounds. » Read more Continue Reading »
  • Posted on Saturday April 15, 2017
    This post introduces how to install a paravirtualized CentOS 7 DomU on Xen. The very common way of installing DomU does not work for CentOS 7. A little trick to set the repository and the network used by the VM should be used by adding a setting strings to the “extra=” field for this VM. To install the DomU VM, first download the pxeboot images from CentOS’s official website at http://mirror.centos.org/centos/7/os/x86_64/images/pxeboot/. » Read more Continue Reading »
  • Posted on Sunday April 09, 2017
    The USB standards have evolved to 3.1 and the supported throughput have been increased too. On Linux, the support to USB standards are following the standards development. In this post, we will survey the standards that common hardware support and the support in Linux. USB standards USB 2.0: https://en.wikipedia.org/wiki/USB#USB_2.0Speed: » Read more Continue Reading »
  • Posted on Saturday March 18, 2017
    Building Linux kernel may sound a complex and geek-only thing. However, as Linux kernel itself has much less depended tools/packages compared to other software packages, it is quite easy to compile, build and install a Linux kernel from the source code in an existing Linux OS. Building Linux kernel is needed if you need to build a specific Linux kernel or update your drivers for a kernel by yourself. » Read more Continue Reading »
  • Posted on Friday February 24, 2017
    In today’s time, data visualization has become a significant part of the success story of an organization. With the help of right techniques, visualizing data can reveal insights which the management staff can use in their decision-making in order to make sound data-driven decisions. Mapping software is among the robust data visualization tools that you can avail today. With maps, you can find stories, trends, and insights that cannot be found in spreadsheets. » Read more Continue Reading »
  • Posted on Tuesday February 14, 2017
    Motivation Recently, I find it is hard to know the percentage of time that one process uses to wait for synchronous I/O (eg, read, etc). One way is to use the taskstats API provided by Linux Kernel [1]. However, for this way, the precision may be one problem. With this problem, I dig into Linux Kernel source codes to see how “blkio_delay_total” (Delay time waiting for synchronous block I/O to complete) is calculated. » Read more Continue Reading »
  • Posted on Monday February 06, 2017
    Making a career choice is difficult. And, if you have decided on becoming a programmer, the difficulty is just beginning. The most important thing is to first decide the language that you want to learn and this is often the most difficult decision. The good part is that you know you need to focus on learning programming and the bad part is that you might still be thinking which programming language should you begin to learn. » Read more Continue Reading »
  • Posted on Saturday December 31, 2016
    There are many Vim tutorials and Vim tips on the Web. However, I find the vimtutor provides the best tutorial among those so far as I found on the Web while the vimtutor seems usually reachable from a terminal which is not obviously known to Vim beginners who are usually Linux beginners too. This page shows the content of the Vim tutorial from the command vimtutor in a web page which is especially easier for Vim beginners to get and learn. » Read more Continue Reading »
  • Posted on Friday December 23, 2016
    This post is about the Spring Shell technology and its use in java. Experts of java development India have shared their best knowledge in this post for Spring Shell with the community people. If you have anything to ask, do it at the end. Technology: It is command line tool for Java applications to interact with java applications using spring shell framework. » Read more Continue Reading »

Latest QA answers

  • Posted on Thursday September 14, 2017
    2 possible ways: /forcefsck way for / # touch /forcefsckand reboot. Next time the / will be fsck'ed . systemd way Add these 2 kernel boot parameters: fsck.mode=force fsck.repair=yesWhat these 2 kernel parameters do: KERNEL COMMAND LINEsystemd-fsck understands one kernel command line parameter:fsck.mode=One of "auto", "force", "skip". Controls the mode of operation. The default is "auto", and ensures that file system checks are done when the file system checker deems them necessary. "force" unconditionally results in full file system checks. "skip" skips any file system checks.fsck.repair=One of "preen", "yes" Continue Reading »
  • Posted on Tuesday September 12, 2017
    On CentOS 7 Linux it is usually by default /var/lib/mysqlBut here I give you another "hacky" way to find it out. The method is to find out the mysql daemon mysqld' opened files and the paths because it must open the files to read/write data. First, find out the process ID of the mysqld process: # ps aux | grep mysqldmysql 25403 1.0 17.2 1322220 174948 ? Ssl Aug31 178:10 /usr/sbin/mysqldSecond, go to the mysqld process' dir under /proc/. For the above example, # cd /proc/25403/Check the opened files under the directory Continue Reading »
  • Posted on Tuesday September 12, 2017
    You can check this tutorial for how to force a checkpointing of metadata in HDFS: How to force a metadata checkpointing in HDFS Continue Reading »
  • Posted on Thursday September 07, 2017
    Try gore https://github.com/motemen/gore Get gore $ go get -u github.com/motemen/goreAn example $ gore gore version 0.2.6 :help for help gore> :import fmt gore> fmt.Println("hello world!") hello world! 13 nilgore> Continue Reading »
  • Posted on Thursday September 07, 2017
    In PHP, to disable the short open tags, you can set the variable short_open_tags = FALSE;in your php.ini. Reference: short_open_tags in php.ini Continue Reading »
  • Posted on Thursday September 07, 2017
    This feature of {} without the position argument specifier is only available after at least 3.1 for Python 3, or 2.7 for Python 2. On CentOS 6, the default Python version is 2.6: $ python --version Python 2.6.6So you need to add the position argument specifiers: print '== {0} SPF'.format(d) Continue Reading »
  • Posted on Thursday September 07, 2017
    For a domain with email and SMTP hosted by DreamHost, you can set its SPF record to v=spf1 include:netblocks.dreamhost.comReference: What SPF records do I use? - DreamHost Continue Reading »
  • Posted on Thursday September 07, 2017
    Please run command: # cat /proc/interrupts or you can execute $ watch -n1 "cat /proc/interrupts" to watch interrupts every 1 second. See [1] [2] for more details. References: [1] https://stackoverflow.com/questions/28301875/how-to-observe-interrupts-in-windows-or-linux-ubuntu-14-04 [2] http://www.linuxjournal.com/content/watch-live-interrupts Continue Reading »
  • Posted on Thursday September 07, 2017
    gfortran on CentOS 7 is provided in the gcc-gfortran package. You may install it to install gfortran. # yum install gcc-gfortran Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.cuhk.edu.hk * epel: ftp.cuhk.edu.hk * extras: centos.01link.hk * nux-dextop: li.nux.ro * updates: ftp.cuhk.edu.hk Resolving Dependencies --> Running transaction check ---> Package gcc-gfortran.x86_64 0:4.8.5-11.el7 will be installed --> Finished Dependency ResolutionDependencies Resolved================================================================================ Package Arch Version Repository Size ================================================================================ Installing: gcc-gfortran x86_64 4.8.5-11.el7 base 6.6 Continue Reading »
  • Posted on Thursday September 07, 2017
    1, Get this task's ID # taskset -pc PID2, Set this task's CPU affinity # taskset -c affinity ./task Continue Reading »
  • Posted on Wednesday September 06, 2017
    I think you may want to add following parameters to Kernel boot (/etc/default/grub) parameters intel_idle.max_cstate=0 processor.max_cstate=0 idle=poll intel_pstate=disableAt the same time, you may also want to shutdown/open Pause Loop Exiting (PLE). See [2] [3] for more details about PLE, and see [1] [4] for more details about Intel C-States and P-States. How to Shutdown PLE: sudo rmmod kvm_intel sudo modprobe kvm_intel ple_gap=0 ple_window=0 cat /sys/module/kvm_intel/parameters/ple*How to turn on PLE: sudo rmmod kvm_intel sudo modprobe kvm_intel cat /sys/module/kvm_intel/parameters/ple*References [1] https://stackoverflow.com/questions/12111954/context-switches-much-slower-in-new-linux-kernels [2] https://www.google.com/patents/US9021497 [3] https://surriel.com/system/files/riel_t_1620_kvm_performance.pdf [4] https://haypo.github.io/intel-cpus.html Continue Reading »
  • Posted on Wednesday September 06, 2017
    Call the flush library function on sys.stdout which is the STDOUT: import sys sys.stdout.flush()From python doc: flush()Flush the write buffers of the stream if applicable. This does nothing for read-only and non-blocking streams.If you can't change the code while you can change the python interpreter options used, you can give it -u: -u Force stdin, stdout and stderr to be totally unbuffered. On systems where it matters, also put stdin, stdout and stderr in binary mode. Note that there is internal buffering in xreadlines(), readlines() and file-object iterators ("for line in sys.stdin") which Continue Reading »
  • Posted on Saturday September 02, 2017
    Cgroup has lots of parameters we can use to control computer resources. For CPU resources, you can tune cpu.shares parameter to limit users' CPU resources. To be more precise, change directory to /sys/fs/cgroup/cpu/user and choose the user you want to control. And then, you will see cpu.shares parameter under the directory. You might want to read [1] for more details about how to tune it. [1] https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-cpu.html Continue Reading »
  • Posted on Saturday September 02, 2017
    Solution 1: Under directory '/sys/fs/cgroup/cpuset/machine', you will find virtual_machine_name.libvirt-qemu directory. And under this directory, you will find all vCPU sub-directories and under these dirs, you will find vCPU thread IDs. For example sysmen tmp1.libvirt-qemu # ls cgroup.clone_children cpuset.cpus cpuset.memory_migrate cpuset.memory_spread_slab cpuset.sched_relax_domain_level tasks vcpu2 vcpu5 cgroup.procs cpuset.mem_exclusive cpuset.memory_pressure cpuset.mems emulator vcpu0 vcpu3 cpuset.cpu_exclusive cpuset.mem_hardwall cpuset.memory_spread_page cpuset.sched_load_balance notify_on_release vcpu1 vcpu4 sysmen tmp1.libvirt-qemu # pwd /sys/fs/cgroup/cpuset/machine/tmp1.libvirt-qemu sysmen tmp1.libvirt-qemu # cat vcpu0/tasks 99461 sysmen tmp1.libvirt-qemu # taskset -pc 99461 pid 99461's current affinity list: Continue Reading »
  • Posted on Saturday September 02, 2017
    Common techniques like printing varibles out for checking apply for bash too. For bash, I usually use 2 bash-specific techniques. Add set -o errexit to the beginning of the scripterrexit makes bash exit immediately if one statement's return code is not 0. This way, you know which statement goes wrong. bash -x your-script.sh the -x will make bash print statements executed so that you know what is going on. By combining the 2 techniques together, which statement/step went wrong is printed out on the STDOUT. Continue Reading »
  • Posted on Monday August 28, 2017
    There may be various possible reasons. 2 common reasons: screen is not installed correctly. You may try using another non-root user to verify whether screen is installed and works correctly. It makes use of the setgid permission and these file/dir permissions should usually be as follows. screen binary's group should be 'screen' and screen should have the '-s-' flag: $ getfacl $(which screen) getfacl: Removing leading '/' from absolute path names # file: usr/bin/screen # owner: root # group: screen # flags: -s- user::rwx group::r-x other::r-x/var/run/screen dir group is 'screen': $ ls -lha /var/run/ | grep Continue Reading »
  • Posted on Sunday August 27, 2017
    As I know, paravirtualization solution is a good way to share data for VM and VMM since it has better performance. Please use Virtio 9p solution for QEMU/KVM. Note that you need to load 9p related modules for guest kernel. Add following in your virsh start xml file. <filesystem type='mount' accessmode='passthrough'> <source dir='host_dir_path'/> <target dir='testlabel'/> </filesystem>After start guest OS, run following command # mount testlabel /mnt/ -t 9p -o trans=virtioReferences [1] http://wiki.qemu.org/Documentation/9psetup [2] https://www.linux-kvm.org/page/9p_virtio [3] http://rabexc.org/posts/p9-setup-in-libvirt [4] https://dustymabe.com/2012/09/11/share-a-folder-between-kvm-host-and-guest/ Continue Reading »
  • Posted on Sunday August 27, 2017
    Solution 1: Please use taskstats [1] related interfaces, and send TASKSTATS_TYPE_PID and TASKSTATS_TYPE_TGID commands to kernel to get a process's 'blkio_delay_total' parameter for a process with one main thread and a process with threads separately. Solution 2: instrument kernel to get process's I/O utilization percentage. See [2] for details. [1] https://www.kernel.org/doc/Documentation/accounting/ [2] https://github.com/iovisor/bcc Continue Reading »
  • Posted on Thursday August 17, 2017
    You need to install the package php-xml to have DOMCoument support to PHP: # yum install php-xmlYou may need to restart apache/httpd (# apachectl restart). The package contains: $ rpm -ql php-xml /etc/php.d/dom.ini /etc/php.d/wddx.ini /etc/php.d/xmlreader.ini /etc/php.d/xmlwriter.ini /etc/php.d/xsl.ini /usr/lib64/php/modules/dom.so /usr/lib64/php/modules/wddx.so /usr/lib64/php/modules/xmlreader.so /usr/lib64/php/modules/xmlwriter.so /usr/lib64/php/modules/xsl.so Continue Reading »
  • Posted on Monday August 14, 2017
    You can convert a string to an array using the grammar like inarr=(${a})If the delimiter is not space and delimiter is a single character or a string consisting of 1 or more of the characters, set the IFS like IFS=',' inarr=(${a})For the examples in the question: For the space separated string: $ a="a string separated by space" $ inarr=(${a})Check the result: $ echo ${inarr[@]} a string separated by spaceFor the ',' separated string, set the IFS: $ a="a,string,separated,by,comma"; $ IFS=',' inarr=(${a});Check the result: $ echo ${inarr[@]} a string Continue Reading »
hss-keywords.png

Most viewed tutorials

sai-kung-hong-kong.jpg

Latest updated tutorials

Subscribe, contact, and license

Subscribe to SysTutorials: Subscribe. Contact us: Contact. General license and policy: License.

Please share if you like this post: